diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2019-09-10 20:10:08 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2019-09-10 20:10:08 -0700 |
commit | 90cfbd9f4f0da650db4be458b01a8c44bee08047 (patch) | |
tree | 728a6aa0c6f22bbe3bb7484564f9123325a19efe | |
parent | d3d92b3c4e24fb296b124ba18e01442783da7fa7 (diff) | |
download | txr-90cfbd9f4f0da650db4be458b01a8c44bee08047.tar.gz txr-90cfbd9f4f0da650db4be458b01a8c44bee08047.tar.bz2 txr-90cfbd9f4f0da650db4be458b01a8c44bee08047.zip |
list-builder: remove wasteful slot accesses.
* share/txr/stdlib/build.tl (list-builder add,
list-builder pend, list-builder pend): Refer to previously
cached variable holding self.head or self.tail, instead of
re-accessing the slot.
-rw-r--r-- | share/txr/stdlib/build.tl | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/share/txr/stdlib/build.tl b/share/txr/stdlib/build.tl index 76be9f55..91a39223 100644 --- a/share/txr/stdlib/build.tl +++ b/share/txr/stdlib/build.tl @@ -33,10 +33,10 @@ (:method add (self . items) (let ((st self.tail)) - (rplacd st (append (cdr st) nil))) - (let ((tl (last self.tail))) - (usr:rplacd tl (append (cdr tl) items)) - (set self.tail tl)) + (rplacd st (append (cdr st) nil)) + (let ((tl (last st))) + (usr:rplacd tl (append (cdr tl) items)) + (set self.tail tl))) nil) (:method add* (self . items) @@ -47,19 +47,19 @@ (:method pend (self . lists) (when lists (let ((st self.tail)) - (rplacd st (append (cdr st) nil))) - (let* ((tl (last self.tail)) - (cp (tailp tl (car (last lists)))) - (nl [apply append lists])) - (usr:rplacd tl (append (cdr tl) (if cp (copy-list nl) nl))) - (set self.tail tl)) + (rplacd st (append (cdr st) nil)) + (let* ((tl (last st)) + (cp (tailp tl (car (last lists)))) + (nl [apply append lists])) + (usr:rplacd tl (append (cdr tl) (if cp (copy-list nl) nl))) + (set self.tail tl))) nil)) (:method pend* (self . lists) (let* ((h self.head) (pf [apply append (append lists (list (cdr h)))])) (usr:rplacd h pf) - (set self.tail self.head)) + (set self.tail h)) nil) (:method ncon (self . lists) |