Better dlists behavior

db4
Slava Pestov 2008-01-23 06:31:30 -04:00
parent 42e97d4629
commit bc5bc22072
1 changed files with 9 additions and 8 deletions

View File

@ -78,7 +78,8 @@ PRIVATE>
: pop-front ( dlist -- obj ) : pop-front ( dlist -- obj )
dup dlist-front [ dup dlist-front [
dlist-node-next dup dlist-node-next
f rot set-dlist-node-next
f over set-prev-when f over set-prev-when
swap set-dlist-front swap set-dlist-front
] 2keep dlist-node-obj ] 2keep dlist-node-obj
@ -87,13 +88,13 @@ PRIVATE>
: pop-front* ( dlist -- ) pop-front drop ; : pop-front* ( dlist -- ) pop-front drop ;
: pop-back ( dlist -- obj ) : pop-back ( dlist -- obj )
[ dup dlist-back [
dlist-back dup dlist-node-prev f over set-next-when dup dlist-node-prev
] keep f rot set-dlist-node-prev
[ set-dlist-back ] keep f over set-next-when
[ normalize-front ] keep swap set-dlist-back
dec-length ] 2keep dlist-node-obj
dlist-node-obj ; swap [ normalize-front ] keep dec-length ;
: pop-back* ( dlist -- ) pop-back drop ; : pop-back* ( dlist -- ) pop-back drop ;