diff options
| author | Paul Eggert | 2020-02-22 08:04:16 -0800 |
|---|---|---|
| committer | Paul Eggert | 2020-02-22 08:05:59 -0800 |
| commit | 202c3319a28c029d6971dccea92f92425c5e8067 (patch) | |
| tree | 2b3b4bf92b03a96029a4c74a2935a33f5d14a13b /src | |
| parent | 929c9d33021a61be4c1a45d343689c303a15e986 (diff) | |
| download | emacs-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.c | 10 | ||||
| -rw-r--r-- | src/lisp.h | 1 |
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 | ||
| 145 | AVOID | 145 | AVOID |
| 146 | wrong_type_argument (register Lisp_Object predicate, register Lisp_Object value) | 146 | wrong_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, |