From cddd91863740e560ae95ccdd2be5aa0e128713ed Mon Sep 17 00:00:00 2001
From: Kaz Kylheku <kaz@kylheku.com>
Date: Thu, 22 Jul 2021 07:18:58 -0700
Subject: hash: change make_hash interface.

The make_hash function now takes the hash_weak_opt_t
enumeration instead of a pair of flags.

* hash.c (do_make_hash): Take enum argument instead of pair of
flags. Just store the option; nothing to calculate.
(weak_opt_from_flags): New static function.
(tweak_hash): Function removed.
(make_seeded_hash): Adjust to new do_make_hash interface with
help from weak_opt_from_flags.
(make_hash, make_eq_hash): Take enum argument instead of pair
of flags.
(hashv): Calculate hash_weak_opt_t enum from the extracted
flags, pass down to make_eq_hash or make_hash.

* hash.h (tweak_hash): Declration removed.
(make_hash, make_eq_hash): Declarations updated.

* eval.c (me_case, expand_switch): Update make_hash
calls to new style.
(eval_init): Update make_hash calls and get rid of tweak_hash
calls. This renders the tweak_hash function unused.

* ffi.c (make_ffi_type_enum, ffi_init): Update make_hash calls
to new style.

* filter.c (make_trie, trie_add, filter_init): Likewise.

* lib.c (make_package_common, obj_init, obj_print): Likewise.

* lisplib.c (lisplib_init): Likewise.

* match.c (dir_tables_init): Likewise.

* parser.c (parser_circ_def, repl, parse_init): Likewise.

* parser.l (parser_l_init): Likewise.

* struct.c (struct_init, get_slot_syms): Likewise.

* sysif.c (get_env_hash): Likewise.

* lex.yy.c.shipped, y.tab.c.shipped: Updated.
---
 ffi.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

(limited to 'ffi.c')

diff --git a/ffi.c b/ffi.c
index 89547891..958a7ef1 100644
--- a/ffi.c
+++ b/ffi.c
@@ -3647,8 +3647,8 @@ static val make_ffi_type_enum(val syntax, val enums,
                                     chk_calloc(1, sizeof *tft));
   struct txr_ffi_type *btft = ffi_type_struct(base_type);
 
-  val sym_num = make_hash(nil, nil, t);
-  val num_sym = make_hash(nil, nil, nil);
+  val sym_num = make_hash(hash_weak_none, t);
+  val num_sym = make_hash(hash_weak_none, nil);
   val obj = cobj(coerce(mem_t *, tft), ffi_type_cls, &ffi_type_enum_ops);
   cnum lowest = INT_PTR_MAX;
   cnum highest = INT_PTR_MIN;
@@ -6481,8 +6481,8 @@ void ffi_init(void)
   reg_fun(intern(lit("get-obj"), user_package), func_n2o(get_obj, 1));
   reg_fun(intern(lit("fill-obj"), user_package), func_n3o(fill_obj, 2));
   reg_fun(intern(lit("dyn-size"), system_package), func_n2(dyn_size));
-  ffi_typedef_hash = make_hash(nil, nil, nil);
-  ffi_struct_tag_hash = make_hash(nil, nil, nil);
+  ffi_typedef_hash = make_hash(hash_weak_none, nil);
+  ffi_struct_tag_hash = make_hash(hash_weak_none, nil);
   ffi_init_types();
   ffi_init_extra_types();
 }
-- 
cgit v1.2.3