Subversion Repositories Kolibri OS

Rev

Rev 8728 | Rev 9050 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8728 Rev 9010
Line 162... Line 162...
162
        _append(list, newItem)
162
        _append(list, newItem)
163
    END
163
    END
164
END _insert;
164
END _insert;
Line -... Line 165...
-
 
165
 
-
 
166
 
-
 
167
PROCEDURE _exchange* (list: tList; a, b: tItem);
-
 
168
VAR
-
 
169
    a0, b0: tItem;
-
 
170
BEGIN
-
 
171
    IF (a # NIL) & (b # NIL) THEN
-
 
172
        ASSERT((a.next = b) & (b.prev = a));
-
 
173
        a0 := a.prev;
-
 
174
        b0 := b.next;
-
 
175
        movPtr(b.prev, a0);
-
 
176
        movPtr(a.next, b0);
-
 
177
        movPtr(b.next, a);
-
 
178
        movPtr(a.prev, b);
-
 
179
        IF (a0 # NIL) & (b0 # NIL) THEN
-
 
180
            movPtr(a0.next, b);
-
 
181
            movPtr(b0.prev, a);
-
 
182
        ELSIF (a0 # NIL) & (b0 = NIL) THEN
-
 
183
            movPtr(a0.next, b);
-
 
184
            movPtr(list.last, a)
-
 
185
        ELSIF (a0 = NIL) & (b0 # NIL) THEN
-
 
186
            movPtr(b0.prev, a);
-
 
187
            movPtr(list.first, b)
-
 
188
        ELSIF (a0 = NIL) & (b0 = NIL) THEN
-
 
189
            movPtr(list.first, b);
-
 
190
            movPtr(list.last, a)
-
 
191
        END
-
 
192
    END
-
 
193
END _exchange;
165
 
194
 
166
 
195
 
167
PROCEDURE append* (list: tList; item: tItem);
196
PROCEDURE append* (list: tList; item: tItem);
168
BEGIN
197
BEGIN
169
    item.prev := list.last;
198
    item.prev := list.last;