summaryrefslogtreecommitdiff
path: root/src/data.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-12-25 17:28:51 +0000
committerRichard M. Stallman <rms@gnu.org>1994-12-25 17:28:51 +0000
commite1351ff7c37a80c5822333264e5a82818bc588d8 (patch)
tree694581d98c5e256cf2c822a9bdd942ca652a4ccc /src/data.c
parent65135ec2206ecd7982ab8bcecbcfe07e8378b027 (diff)
downloademacs-e1351ff7c37a80c5822333264e5a82818bc588d8.tar.gz
(wrong_type_argument): Abort if VALUE is invalid Lisp object.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/data.c b/src/data.c
index 2f41d4ee60f..24ee967d303 100644
--- a/src/data.c
+++ b/src/data.c
@@ -101,6 +101,12 @@ wrong_type_argument (predicate, value)
if (INTEGERP (value) && EQ (predicate, Qstringp))
return Fnumber_to_string (value);
}
+
+ /* If VALUE is not even a valid Lisp object, abort here
+ where we can get a backtrace showing where it came from. */
+ if ((unsigned int) XGCTYPE (value) > Lisp_Window + 2)
+ abort ();
+
value = Fsignal (Qwrong_type_argument, Fcons (predicate, Fcons (value, Qnil)));
tem = call1 (predicate, value);
}