summaryrefslogtreecommitdiffstats
path: root/hash.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-10-08 20:54:05 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-10-08 20:54:05 -0700
commit31aec9f2132701f741d8786950190980a792fd96 (patch)
treeb331db0c1b757ae21ecd237d5245d465a40e8c89 /hash.c
parent758a8d52fb20d976d7fc459aa6ca34242a6ec0ee (diff)
downloadtxr-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.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/hash.c b/hash.c
index 2f99a5ce..d71f0e20 100644
--- a/hash.c
+++ b/hash.c
@@ -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);