summaryrefslogtreecommitdiff
path: root/src/comp.c
diff options
context:
space:
mode:
authorMattias EngdegÄrd <mattiase@acm.org>2023-12-28 19:04:43 +0100
committerMattias EngdegÄrd <mattiase@acm.org>2024-01-12 18:03:02 +0100
commit29e3d1c56f07a53d1955c9a71e68f70f3b901728 (patch)
tree8af3a2032f9e99368dd2a4ac14bacc26be23d9ea /src/comp.c
parent484e04efa4fcb81968cba8e05835812c62856287 (diff)
downloademacs-29e3d1c56f07a53d1955c9a71e68f70f3b901728.tar.gz
emacs-29e3d1c56f07a53d1955c9a71e68f70f3b901728.tar.bz2
emacs-29e3d1c56f07a53d1955c9a71e68f70f3b901728.zip
Abstract predicate and constant for unused hash keys
Qunbound is used for many things; using a predicate and constant for the specific purpose of unused hash entry keys allows us to locate them and make changes much more easily. * src/lisp.h (HASH_UNUSED_ENTRY_KEY, hash_unused_entry_key_p): New constant and function. * src/comp.c (compile_function, Fcomp__compile_ctxt_to_file): * src/composite.c (composition_gstring_cache_clear_font): * src/emacs-module.c (module_global_reference_p): * src/fns.c (make_hash_table, maybe_resize_hash_table, hash_put) (hash_remove_from_table, hash_clear, sweep_weak_table, Fmaphash): * src/json.c (lisp_to_json_nonscalar_1): * src/minibuf.c (Ftry_completion, Fall_completions, Ftest_completion): * src/print.c (print, print_object): Use them.
Diffstat (limited to 'src/comp.c')
-rw-r--r--src/comp.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/comp.c b/src/comp.c
index 347f8924793..2872c28a2b1 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -4334,7 +4334,7 @@ compile_function (Lisp_Object func)
{
Lisp_Object block_name = HASH_KEY (ht, i);
if (!EQ (block_name, Qentry)
- && !BASE_EQ (block_name, Qunbound))
+ && !hash_unused_entry_key_p (block_name))
declare_block (block_name);
}
@@ -4347,7 +4347,7 @@ compile_function (Lisp_Object func)
for (ptrdiff_t i = 0; i < HASH_TABLE_SIZE (ht); i++)
{
Lisp_Object block_name = HASH_KEY (ht, i);
- if (!BASE_EQ (block_name, Qunbound))
+ if (!hash_unused_entry_key_p (block_name))
{
Lisp_Object block = HASH_VALUE (ht, i);
Lisp_Object insns = CALL1I (comp-block-insns, block);
@@ -4966,12 +4966,12 @@ DEFUN ("comp--compile-ctxt-to-file", Fcomp__compile_ctxt_to_file,
struct Lisp_Hash_Table *func_h =
XHASH_TABLE (CALL1I (comp-ctxt-funcs-h, Vcomp_ctxt));
for (ptrdiff_t i = 0; i < HASH_TABLE_SIZE (func_h); i++)
- if (!BASE_EQ (HASH_KEY (func_h, i), Qunbound))
+ if (!hash_unused_entry_key_p (HASH_KEY (func_h, i)))
declare_function (HASH_VALUE (func_h, i));
/* Compile all functions. Can't be done before because the
relocation structs has to be already defined. */
for (ptrdiff_t i = 0; i < HASH_TABLE_SIZE (func_h); i++)
- if (!BASE_EQ (HASH_KEY (func_h, i), Qunbound))
+ if (!hash_unused_entry_key_p (HASH_KEY (func_h, i)))
compile_function (HASH_VALUE (func_h, i));
/* Work around bug#46495 (GCC PR99126). */