diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-07-20 23:17:59 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-07-20 23:17:59 -0700 |
commit | a6f0c72306da0c628be9e180288f79fbf29bfa57 (patch) | |
tree | c47d4f40f9d3624f28277db5017db526178feef4 /hash.h | |
parent | 5e6dca52d383e649bc6e39de26ffa2474a2b9814 (diff) | |
download | txr-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