]> git.eshelyaron.com Git - emacs.git/commit
Represent hash table weakness as an enum internally
authorMattias EngdegÄrd <mattiase@acm.org>
Thu, 26 Oct 2023 13:49:32 +0000 (15:49 +0200)
committerEshel Yaron <me@eshelyaron.com>
Sun, 14 Jan 2024 15:15:36 +0000 (16:15 +0100)
commitef1f0f5f3196a22829b0029e7f91caebc0992979
treea066c37a9d581e010490fefb17e5f5ad854bfa1e
parent4ca869d0296e36b37f72417aa4b31e5ff16cda07
Represent hash table weakness as an enum internally

This takes less space (saves an entire word) and is more type-safe.
No change in behaviour.

* src/lisp.h (hash_table_weakness_t): New.
(struct Lisp_Hash_Table): Replace Lisp object `weak` with enum
`weakness`.
* src/fns.c
(keep_entry_p, hash_table_weakness_symbol): New.
(make_hash_table): Retype argument.  All callers updated.
(sweep_weak_table, Fmake_hash_table, Fhash_table_weakness):
* src/alloc.c (purecopy_hash_table, purecopy, process_mark_stack):
* src/pdumper.c (dump_hash_table):
* src/print.c (print_object): Use retyped field.

(cherry picked from commit c6bdc1ea1dc7f9a0b6d92d443f34c42affde73d1)
14 files changed:
src/alloc.c
src/category.c
src/emacs-module.c
src/fns.c
src/frame.c
src/image.c
src/lisp.h
src/lread.c
src/pdumper.c
src/pgtkterm.c
src/print.c
src/profiler.c
src/xfaces.c
src/xterm.c