summaryrefslogtreecommitdiff
path: root/lib/hash.h
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2023-04-27 17:09:00 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2023-04-27 17:09:00 +0200
commit9b471e72d75c154f3b8c4fa134c7c9f1a55fe27f (patch)
tree9b48f388f4d3f87d243d8a9df1adfcddf75a7a2e /lib/hash.h
parentca0f239c72486cebfe171e335e3b8a86f5999714 (diff)
Conf: Fix symbol lookup
The symbol table used just symbol name as a key, and used a trick with active flag to find symbols in active scopes with one hash table lookup. The disadvantage is that it can degenerate to O(n) for negative queries in situations where are many symbols with the same name in different scopes. Thanks to Yanko Kaneti for the bugreport.
Diffstat (limited to 'lib/hash.h')
-rw-r--r--lib/hash.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/hash.h b/lib/hash.h
index 8febb33f..b30f7830 100644
--- a/lib/hash.h
+++ b/lib/hash.h
@@ -237,7 +237,7 @@ mem_hash(const void *p, uint s)
}
static inline uint
-ptr_hash(void *ptr)
+ptr_hash(const void *ptr)
{
uintptr_t p = (uintptr_t) ptr;
return p ^ (p << 8) ^ (p >> 16);