From 222d7ca28e8674507776f427ac30ddd6d28559db Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Fri, 11 Jul 2025 16:26:54 +0200 Subject: [PATCH] * src/fns.c (Flength): Fix char table length off-by-one bug. (cherry picked from commit 52b96d3a7e27e0cdc3f53041f2f18cbe2c095a86) --- src/fns.c | 2 +- test/src/fns-tests.el | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/fns.c b/src/fns.c index a821d73b9e5..599c0ec326c 100644 --- a/src/fns.c +++ b/src/fns.c @@ -147,7 +147,7 @@ efficient. */) else if (VECTORP (sequence)) val = ASIZE (sequence); else if (CHAR_TABLE_P (sequence)) - val = MAX_CHAR; + val = MAX_CHAR + 1; else if (BOOL_VECTOR_P (sequence)) val = bool_vector_size (sequence); else if (CLOSUREP (sequence) || RECORDP (sequence)) diff --git a/test/src/fns-tests.el b/test/src/fns-tests.el index 8e540d982dd..89ac3ef3ba9 100644 --- a/test/src/fns-tests.el +++ b/test/src/fns-tests.el @@ -52,7 +52,8 @@ (should (= (length '(1 2 3)) 3)) (should (= (length '[1 2 3]) 3)) (should (= (length "foo") 3)) - (should-error (length t))) + (should-error (length t)) + (should (= (length (make-char-table 'fns-tests)) (1+ (max-char))))) (ert-deftest fns-tests-safe-length () (should (= (safe-length '(1 2 3)) 3))) -- 2.39.5