소스 검색

* insertbefore added

peter 22 년 전
부모
커밋
409b982075
1개의 변경된 파일20개의 추가작업 그리고 1개의 파일을 삭제
  1. 20 1
      compiler/cclasses.pas

+ 20 - 1
compiler/cclasses.pas

@@ -78,6 +78,8 @@ interface
           procedure Clear;
           { inserts an Item }
           procedure Insert(Item:TLinkedListItem);
+          { inserts an Item before Loc }
+          procedure InsertBefore(Item,Loc : TLinkedListItem);
           { inserts an Item after Loc }
           procedure InsertAfter(Item,Loc : TLinkedListItem);
           { concats an Item }
@@ -476,6 +478,20 @@ end;
       end;
 
 
+    procedure TLinkedList.InsertBefore(Item,Loc : TLinkedListItem);
+      begin
+         Item.Previous:=Loc.Previous;
+         Item.Next:=Loc;
+         Loc.Previous:=Item;
+         if assigned(Item.Previous) then
+           Item.Previous.Next:=Item
+         else
+           { if we've no next item, we've to adjust FFist }
+           FFirst:=Item;
+         inc(FCount);
+      end;
+
+
     procedure TLinkedList.InsertAfter(Item,Loc : TLinkedListItem);
       begin
          Item.Next:=Loc.Next;
@@ -1868,7 +1884,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.24  2003-09-24 13:02:10  marco
+  Revision 1.25  2003-09-29 20:52:50  peter
+    * insertbefore added
+
+  Revision 1.24  2003/09/24 13:02:10  marco
    * (Peter) patch to fix snapshot
 
   Revision 1.23  2003/06/09 12:19:34  peter