]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/fns.c (Flength): Fix char table length off-by-one bug.
authorMattias EngdegÄrd <mattiase@acm.org>
Fri, 11 Jul 2025 14:26:54 +0000 (16:26 +0200)
committerEshel Yaron <me@eshelyaron.com>
Thu, 24 Jul 2025 08:07:52 +0000 (10:07 +0200)
(cherry picked from commit 52b96d3a7e27e0cdc3f53041f2f18cbe2c095a86)

src/fns.c
test/src/fns-tests.el

index a821d73b9e5b4165e31b9fad87e08143bbcac05e..599c0ec326c65885b6303ab80270e68786c88626 100644 (file)
--- 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))
index 8e540d982dda203c8dfe1488fe2368cbd5bb31ef..89ac3ef3ba93f9b90c202ca5c4945a1fd8afbfe7 100644 (file)
@@ -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)))