mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-25 07:28:20 +00:00
(optimize_sub_char_table): Don't optimize a sub-char-table
whose default value is non-nil.
This commit is contained in:
parent
7b7d4a7915
commit
983f6a3da6
10
src/fns.c
10
src/fns.c
@ -2777,7 +2777,8 @@ optimize_sub_char_table (table, chars)
|
||||
else
|
||||
from = 32, to = 128;
|
||||
|
||||
if (!SUB_CHAR_TABLE_P (*table))
|
||||
if (!SUB_CHAR_TABLE_P (*table)
|
||||
|| ! NILP (XCHAR_TABLE (*table)->defalt))
|
||||
return;
|
||||
elt = XCHAR_TABLE (*table)->contents[from++];
|
||||
for (; from < to; from++)
|
||||
@ -2792,7 +2793,7 @@ DEFUN ("optimize-char-table", Foptimize_char_table, Soptimize_char_table,
|
||||
Lisp_Object table;
|
||||
{
|
||||
Lisp_Object elt;
|
||||
int dim;
|
||||
int dim, chars;
|
||||
int i, j;
|
||||
|
||||
CHECK_CHAR_TABLE (table);
|
||||
@ -2803,10 +2804,11 @@ DEFUN ("optimize-char-table", Foptimize_char_table, Soptimize_char_table,
|
||||
if (!SUB_CHAR_TABLE_P (elt))
|
||||
continue;
|
||||
dim = CHARSET_DIMENSION (i - 128);
|
||||
chars = CHARSET_CHARS (i - 128);
|
||||
if (dim == 2)
|
||||
for (j = 32; j < SUB_CHAR_TABLE_ORDINARY_SLOTS; j++)
|
||||
optimize_sub_char_table (XCHAR_TABLE (elt)->contents + j, dim);
|
||||
optimize_sub_char_table (XCHAR_TABLE (table)->contents + i, dim);
|
||||
optimize_sub_char_table (XCHAR_TABLE (elt)->contents + j, chars);
|
||||
optimize_sub_char_table (XCHAR_TABLE (table)->contents + i, chars);
|
||||
}
|
||||
return Qnil;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user