diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2018-01-07 01:51:02 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2018-01-07 01:51:02 -0800 |
commit | 2282c1bc60a9b37ca8b7fcf843a62413e328e324 (patch) | |
tree | 75675a614945779c8805c1dc84928961b5a8ef55 /lib.c | |
parent | 3cdac5ead76c16bbf68be92a086c0b9ab72ad3b9 (diff) | |
download | txr-2282c1bc60a9b37ca8b7fcf843a62413e328e324.tar.gz txr-2282c1bc60a9b37ca8b7fcf843a62413e328e324.tar.bz2 txr-2282c1bc60a9b37ca8b7fcf843a62413e328e324.zip |
tail: reduce calls to cdr.
* lib.c (tail): Don't call cdr on the same cell twice in the
loop body. tail is used in list_collect and friends, which are
used all over the place.
Diffstat (limited to 'lib.c')
-rw-r--r-- | lib.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -655,8 +655,9 @@ val listref(val list, val ind) loc tail(val cons) { - while (consp(cdr(cons))) - cons = cdr(cons); + val d; + for (d = cdr(cons); consp(d); d = cdr(d)) + cons = d; return cdr_l(cons); } |