]> git.eshelyaron.com Git - emacs.git/commitdiff
Change hash_idx_t to int32_t on all platforms
authorMattias Engdegård <mattiase@acm.org>
Tue, 21 Nov 2023 18:26:23 +0000 (19:26 +0100)
committerMattias Engdegård <mattiase@acm.org>
Sat, 13 Jan 2024 19:50:38 +0000 (20:50 +0100)
* src/lisp.h (hash_idx_t): Change to int32_t.
* src/fns.c (hash_index_size): Adapt to new index type.

src/fns.c
src/lisp.h

index 4a38126d9dc3f307cc7f4f900b8de8713953de3b..3acbc7f86a1ce0082065d8a2b960db4cdad7e170 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -4515,7 +4515,8 @@ hash_index_size (ptrdiff_t size)
   /* An upper bound on the size of a hash table index.  It must fit in
      ptrdiff_t and be a valid Emacs fixnum.  */
   ptrdiff_t upper_bound = min (MOST_POSITIVE_FIXNUM,
-                        PTRDIFF_MAX / sizeof (ptrdiff_t));
+                              min (TYPE_MAXIMUM (hash_idx_t),
+                                   PTRDIFF_MAX / sizeof (ptrdiff_t)));
   ptrdiff_t index_size = size + (size >> 2);  /* 1.25x larger */
   if (index_size < upper_bound)
     index_size = next_almost_prime (index_size);
index 5b70e96d6a13d39789bf2b4d06d0a169cac04cf3..f27f506b58ffe3a9f5064fe5b6ad705421f2e3e6 100644 (file)
@@ -2432,7 +2432,7 @@ verify (FIXNUM_OVERFLOW_P (hash_unused));
 
 /* The type of a hash table index, both for table indices and index
    (hash) indices.  It's signed and a subtype of ptrdiff_t.  */
-typedef ptrdiff_t hash_idx_t;
+typedef int32_t hash_idx_t;
 
 struct Lisp_Hash_Table
 {