summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-10-12 20:46:47 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-10-12 20:46:47 -0700
commit03699dd7d47cbf95552bed02e5c37f078528a3b2 (patch)
tree6524f87881db8d2e0d797177cc6c5ff35322a341 /share
parent7736be0fad0ce7805e7fe90eb12c9689b03d34a2 (diff)
downloadtxr-03699dd7d47cbf95552bed02e5c37f078528a3b2.tar.gz
txr-03699dd7d47cbf95552bed02e5c37f078528a3b2.tar.bz2
txr-03699dd7d47cbf95552bed02e5c37f078528a3b2.zip
New accessor: hash-userdata.
The get-hash-userdata function is now deprecated in favor of hash-userdata, which is an accessor. * hash.c (hash_init): Register hash-userdata as a synonym for the same function as get-hash-userdata. * share/txr/stdlib/place.tl (hash-userdata): New defplace. * txr.1: Document new accessor, marking get-hash-userdata as a deprecated synonym. Replace references to get-hash-userdata with references to hash-userdata.
Diffstat (limited to 'share')
-rw-r--r--share/txr/stdlib/place.tl12
1 files changed, 12 insertions, 0 deletions
diff --git a/share/txr/stdlib/place.tl b/share/txr/stdlib/place.tl
index 101deb1e..eb827fd4 100644
--- a/share/txr/stdlib/place.tl
+++ b/share/txr/stdlib/place.tl
@@ -561,6 +561,18 @@
^(remhash ,',hash ,',key))))
,body)))
+(defplace (hash-userdata hash) body
+ (getter setter
+ (with-gensyms (hash-sym)
+ ^(slet ((,hash-sym ,hash))
+ (macrolet ((,getter () ^(hash-userdata ,',hash-sym))
+ (,setter (val) ^(set-hash-userdata ,',hash-sym ,val)))
+ ,body))))
+ (ssetter
+ ^(macrolet ((,ssetter (val)
+ ^(set-hash-userdata ,',hash ,val)))
+ ,body)))
+
(defplace (dwim obj-place index : (default nil have-default-p) :env env) body
(getter setter
(with-gensyms (ogetter-sym osetter-sym obj-sym