summaryrefslogtreecommitdiffstats
path: root/hash.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-07-20 23:17:59 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-07-20 23:17:59 -0700
commita6f0c72306da0c628be9e180288f79fbf29bfa57 (patch)
treec47d4f40f9d3624f28277db5017db526178feef4 /hash.h
parent5e6dca52d383e649bc6e39de26ffa2474a2b9814 (diff)
downloadtxr-a6f0c72306da0c628be9e180288f79fbf29bfa57.tar.gz
txr-a6f0c72306da0c628be9e180288f79fbf29bfa57.tar.bz2
txr-a6f0c72306da0c628be9e180288f79fbf29bfa57.zip
hash: change semantics of weak-both hash tables.
From now on, hash tables with both weak keys and values have dijunctive retention semantics. If either the key or value of an entry is reachable, then the entry stays. This is subject to compatibility. * hash.c (do_weak_tables): Expire an entry if neither the key nor the value is reachable. In 266 or lower compatibility mode, expire an entry if either the key or value is unreachable, like before. * txr.1: Document the change, with compat notes. Add a cautionary note about the referencing issue which defeats weak key or weak value tables.
Diffstat (limited to 'hash.h')
0 files changed, 0 insertions, 0 deletions