]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix previous char table change.
authorDmitry Antipov <dmantipov@yandex.ru>
Thu, 16 Aug 2012 07:26:18 +0000 (11:26 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Thu, 16 Aug 2012 07:26:18 +0000 (11:26 +0400)
* lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
* chartab.c (optimize_sub_char_table): Likewise.

src/ChangeLog
src/chartab.c
src/lisp.h

index 663035077bd1b061cc6be7ea6ac10a398809f636..3f2a46794a7aa62efc0d3d623d480b129e834ad9 100644 (file)
@@ -1,3 +1,9 @@
+2012-08-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix previous char table change.
+       * lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
+       * chartab.c (optimize_sub_char_table): Likewise.
+
 2012-08-16  Chong Yidong  <cyd@gnu.org>
 
        * gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
index e79ff73c3752548b110d06b9e35ba26cfc64aa8f..6d3f83499d8b329c2d0298111c49821069b74235 100644 (file)
@@ -693,15 +693,19 @@ optimize_sub_char_table (Lisp_Object table, Lisp_Object test)
 
   elt = XSUB_CHAR_TABLE (table)->contents[0];
   if (SUB_CHAR_TABLE_P (elt))
-    elt = XSUB_CHAR_TABLE (table)->contents[0]
-      = optimize_sub_char_table (elt, test);
+    {
+      elt = optimize_sub_char_table (elt, test);
+      sub_char_table_set_contents (table, 0, elt);
+    }
   optimizable = SUB_CHAR_TABLE_P (elt) ? 0 : 1;
   for (i = 1; i < chartab_size[depth]; i++)
     {
       this = XSUB_CHAR_TABLE (table)->contents[i];
       if (SUB_CHAR_TABLE_P (this))
-       this = XSUB_CHAR_TABLE (table)->contents[i]
-         = optimize_sub_char_table (this, test);
+       {
+         this = optimize_sub_char_table (this, test);
+         sub_char_table_set_contents (table, i, this);
+       }
       if (optimizable
          && (NILP (test) ? NILP (Fequal (this, elt)) /* defaults to `equal'. */
              : EQ (test, Qeq) ? !EQ (this, elt)      /* Optimize `eq' case.  */
index 42297bf04029115fd7775c09607e861601bcd4b9..426bcb263fdc0642d14e050ebd6ddca4a7c6b588 100644 (file)
@@ -923,7 +923,7 @@ enum
    8-bit European characters.  Do not check validity of CT.  */
 #define CHAR_TABLE_SET(CT, IDX, VAL)                                   \
   (ASCII_CHAR_P (IDX) && SUB_CHAR_TABLE_P (XCHAR_TABLE (CT)->ascii)    \
-   ? XSUB_CHAR_TABLE (XCHAR_TABLE (CT)->ascii)->contents[IDX] = VAL    \
+   ? sub_char_table_set_contents (XCHAR_TABLE (CT)->ascii, IDX, VAL)   \
    : char_table_set (CT, IDX, VAL))
 
 enum CHARTAB_SIZE_BITS