summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Antipov <dmantipov@yandex.ru>2014-07-17 13:12:51 +0400
committerDmitry Antipov <dmantipov@yandex.ru>2014-07-17 13:12:51 +0400
commitb1bfebbfc50e3d83a76ec1469b1e4570b1b022bc (patch)
tree1274038fc905eb77ca03978b509d5fef01c40354
parent02a7e500e85ffe42a352a9e0c1fddd1ed6a67658 (diff)
downloademacs-b1bfebbfc50e3d83a76ec1469b1e4570b1b022bc.tar.gz
* print.c (print_preprocess): Adjust to match changed
sub char-table structure and avoid crash (Bug#18038).
-rw-r--r--src/ChangeLog5
-rw-r--r--src/print.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 1ffd1af5af3..d6f27edbbc6 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
+2014-07-17 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * print.c (print_preprocess): Adjust to match changed
+ sub char-table structure and avoid crash (Bug#18038).
+
2014-07-16 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (decode_mode_spec): Call file-remote-p on the current
diff --git a/src/print.c b/src/print.c
index 2f52f5d03ec..57fac7af378 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1228,7 +1228,8 @@ print_preprocess (Lisp_Object obj)
size = ASIZE (obj);
if (size & PSEUDOVECTOR_FLAG)
size &= PSEUDOVECTOR_SIZE_MASK;
- for (i = 0; i < size; i++)
+ for (i = (SUB_CHAR_TABLE_P (obj)
+ ? SUB_CHAR_TABLE_OFFSET : 0); i < size; i++)
print_preprocess (AREF (obj, i));
if (HASH_TABLE_P (obj))
{ /* For hash tables, the key_and_value slot is past