aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2020-02-22 08:04:16 -0800
committerPaul Eggert2020-02-22 08:05:59 -0800
commit202c3319a28c029d6971dccea92f92425c5e8067 (patch)
tree2b3b4bf92b03a96029a4c74a2935a33f5d14a13b /src
parent929c9d33021a61be4c1a45d343689c303a15e986 (diff)
downloademacs-202c3319a28c029d6971dccea92f92425c5e8067.tar.gz
emacs-202c3319a28c029d6971dccea92f92425c5e8067.zip
Restore runtime check for invalid tag
* src/data.c (wrong_type_argument): Restore check that the object’s tag is valid, since invalid tags exist again. * src/lisp.h (Lisp_Type_Unused0): New constant.
Diffstat (limited to 'src')
-rw-r--r--src/data.c10
-rw-r--r--src/lisp.h1
2 files changed, 3 insertions, 8 deletions
diff --git a/src/data.c b/src/data.c
index fae9cee7db1..460cb9330c0 100644
--- a/src/data.c
+++ b/src/data.c
@@ -143,15 +143,9 @@ wrong_length_argument (Lisp_Object a1, Lisp_Object a2, Lisp_Object a3)
143} 143}
144 144
145AVOID 145AVOID
146wrong_type_argument (register Lisp_Object predicate, register Lisp_Object value) 146wrong_type_argument (Lisp_Object predicate, Lisp_Object value)
147{ 147{
148 /* If VALUE is not even a valid Lisp object, we'd want to abort here 148 eassert (!TAGGEDP (value, Lisp_Type_Unused0));
149 where we can get a backtrace showing where it came from. We used
150 to try and do that by checking the tagbits, but nowadays all
151 tagbits are potentially valid. */
152 /* if ((unsigned int) XTYPE (value) >= Lisp_Type_Limit)
153 * emacs_abort (); */
154
155 xsignal2 (Qwrong_type_argument, predicate, value); 149 xsignal2 (Qwrong_type_argument, predicate, value);
156} 150}
157 151
diff --git a/src/lisp.h b/src/lisp.h
index 0bd375658e2..a379977d353 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -481,6 +481,7 @@ enum Lisp_Type
481 Lisp_Symbol = 0, 481 Lisp_Symbol = 0,
482 482
483 /* Type 1 is currently unused. */ 483 /* Type 1 is currently unused. */
484 Lisp_Type_Unused0 = 1,
484 485
485 /* Fixnum. XFIXNUM (obj) is the integer value. */ 486 /* Fixnum. XFIXNUM (obj) is the integer value. */
486 Lisp_Int0 = 2, 487 Lisp_Int0 = 2,