summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/data.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/data.c b/src/data.c
index 942a4f4bed5..8b970959f9e 100644
--- a/src/data.c
+++ b/src/data.c
@@ -1707,13 +1707,19 @@ IDX starts at 0.")
if (SUB_CHAR_TABLE_P (val))
array = val;
else
- /* VAL is a leaf. Create a sub char table with the
- default value VAL or XCHAR_TABLE (array)->defalt
- and look into it. */
- array = (XCHAR_TABLE (array)->contents[code[i]]
- = make_sub_char_table (NILP (val)
- ? XCHAR_TABLE (array)->defalt
- : val));
+ {
+ Lisp_Object temp;
+
+ /* VAL is a leaf. Create a sub char table with the
+ default value VAL or XCHAR_TABLE (array)->defalt
+ and look into it. */
+
+ temp = make_sub_char_table (NILP (val)
+ ? XCHAR_TABLE (array)->defalt
+ : val);
+ XCHAR_TABLE (array)->contents[code[i]] = temp;
+ array = temp;
+ }
}
XCHAR_TABLE (array)->contents[code[i]] = newelt;
}