diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2022-10-08 20:54:05 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2022-10-08 20:54:05 -0700 |
commit | 31aec9f2132701f741d8786950190980a792fd96 (patch) | |
tree | b331db0c1b757ae21ecd237d5245d465a40e8c89 /hash.c | |
parent | 758a8d52fb20d976d7fc459aa6ca34242a6ec0ee (diff) | |
download | txr-31aec9f2132701f741d8786950190980a792fd96.tar.gz txr-31aec9f2132701f741d8786950190980a792fd96.tar.bz2 txr-31aec9f2132701f741d8786950190980a792fd96.zip |
strings: revert caching of hash value.
Research indicates that this is something useful in
languages that abuse strings for implementing symbols.
We have interned symbols.
* lib.h (struct string): Remove hash member.
* lib.c (string_own, string, string_utf8, mkustring,
string_extend, replace_str, chr_str_set): Remove
all initializations and updates of the removed
hash member.
* hash.c (equal_hash): Do not cache string hash value.
Diffstat (limited to 'hash.c')
-rw-r--r-- | hash.c | 7 |
1 files changed, 0 insertions, 7 deletions
@@ -315,13 +315,6 @@ ucnum equal_hash(val obj, int *count, ucnum seed) return equal_hash(obj->c.car, count, seed) + equal_hash(obj->c.cdr, count, seed + (CONS << 8)); case STR: -#if HAVE_MALLOC_USABLE_SIZE - if (seed == 0) { - return if3(obj->st.hash != 0, - obj->st.hash, - obj->st.hash = hash_c_str(obj->st.str, 0, count)); - } -#endif return hash_c_str(obj->st.str, seed, count); case CHR: return c_ch(obj); |