emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scratch/hash-table-perf 1672d880e0c 29/37: Change hash_idx_t to int32_t


From: Mattias Engdegård
Subject: scratch/hash-table-perf 1672d880e0c 29/37: Change hash_idx_t to int32_t on all platforms
Date: Sun, 7 Jan 2024 12:41:22 -0500 (EST)

branch: scratch/hash-table-perf
commit 1672d880e0c2c6407a7c841ec67920c872977682
Author: Mattias Engdegård <mattiase@acm.org>
Commit: Mattias Engdegård <mattiase@acm.org>

    Change hash_idx_t to int32_t on all platforms
    
    * src/lisp.h (hash_idx_t): Change to int32_t.
    * src/fns.c (hash_index_size): Adapt to new index type.
---
 src/fns.c  | 3 ++-
 src/lisp.h | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/fns.c b/src/fns.c
index 2e5969fdff2..88919a904b6 100644
--- 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);
diff --git a/src/lisp.h b/src/lisp.h
index 083733429ed..0e5e75caa3c 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -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
 {



reply via email to

[Prev in Thread] Current Thread [Next in Thread]