summaryrefslogtreecommitdiffstats
path: root/combi.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-10-27 06:26:33 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-10-27 06:26:33 -0700
commit7ae20049c6279c2dc99ca8de836e427c55e9ae9f (patch)
treeeca9827186f47d168157342883ccc5820c1fca88 /combi.c
parentbaad47e4514d8b976669ba71671cc2eccdf2d7e7 (diff)
downloadtxr-7ae20049c6279c2dc99ca8de836e427c55e9ae9f.tar.gz
txr-7ae20049c6279c2dc99ca8de836e427c55e9ae9f.tar.bz2
txr-7ae20049c6279c2dc99ca8de836e427c55e9ae9f.zip
dwim place: multiple accesses, eval order.
* share/txr/stdlib/place.tl (defplace dwim): In updater, removing unused and redundant gensyms. Engaging unused oldval-sym as a temporary to hold the result of invoking (,ogetter-sym), the "getter" for the sequence object place we are operating on. Both references then refer to this resut instead of expanding the getter twice. Though getters should not have side effects, they could be expensive. In simple setter and deleter, setting up obj-sym similarly. We don't make multiple accesses to the sequence, but we were evaluating it in the wrong order w.r.t the index and new-val.
Diffstat (limited to 'combi.c')
0 files changed, 0 insertions, 0 deletions