mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-06 03:40:56 -08:00
Inlined and specialised hash table look-up
This improves performance in several ways. Separate functions are used depending on whether the caller has a hash value computed or not. * src/fns.c (hash_lookup_with_hash, hash_lookup_get_hash): New. (hash_lookup): Remove hash return argument. All callers adapted. hash_lookup_with_hash hash_hash_t arg
This commit is contained in:
parent
a3ae5653cf
commit
3b00255a4c
15 changed files with 66 additions and 46 deletions
|
|
@ -4063,7 +4063,9 @@ EMACS_UINT sxhash (Lisp_Object);
|
|||
Lisp_Object make_hash_table (struct hash_table_test, EMACS_INT,
|
||||
hash_table_weakness_t, bool);
|
||||
Lisp_Object hash_table_weakness_symbol (hash_table_weakness_t weak);
|
||||
ptrdiff_t hash_lookup (struct Lisp_Hash_Table *, Lisp_Object, hash_hash_t *);
|
||||
ptrdiff_t hash_lookup (struct Lisp_Hash_Table *, Lisp_Object);
|
||||
ptrdiff_t hash_lookup_get_hash (struct Lisp_Hash_Table *h, Lisp_Object key,
|
||||
hash_hash_t *phash);
|
||||
ptrdiff_t hash_put (struct Lisp_Hash_Table *, Lisp_Object, Lisp_Object,
|
||||
hash_hash_t);
|
||||
void hash_remove_from_table (struct Lisp_Hash_Table *, Lisp_Object);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue