From fad8fb2264c6263a18ff115d31cce3fbde7159a7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Tue, 21 Nov 2023 19:26:23 +0100 Subject: [PATCH] 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. (cherry picked from commit 68f8bc3111424527205ebfe4498e5bebf50f50bf) --- 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 4a38126d9dc..3acbc7f86a1 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 5b70e96d6a1..f27f506b58f 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 { -- 2.39.5