diff options
Diffstat (limited to 'src/chartab.c')
| -rw-r--r-- | src/chartab.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/chartab.c b/src/chartab.c index 3d38b3ce12e..16017f4a49a 100644 --- a/src/chartab.c +++ b/src/chartab.c | |||
| @@ -125,7 +125,7 @@ the char-table has no extra slot. */) | |||
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | size = CHAR_TABLE_STANDARD_SLOTS + n_extras; | 127 | size = CHAR_TABLE_STANDARD_SLOTS + n_extras; |
| 128 | vector = Fmake_vector (make_fixnum (size), init); | 128 | vector = make_vector (size, init); |
| 129 | XSETPVECTYPE (XVECTOR (vector), PVEC_CHAR_TABLE); | 129 | XSETPVECTYPE (XVECTOR (vector), PVEC_CHAR_TABLE); |
| 130 | set_char_table_parent (vector, Qnil); | 130 | set_char_table_parent (vector, Qnil); |
| 131 | set_char_table_purpose (vector, purpose); | 131 | set_char_table_purpose (vector, purpose); |
| @@ -184,16 +184,13 @@ copy_sub_char_table (Lisp_Object table) | |||
| 184 | Lisp_Object | 184 | Lisp_Object |
| 185 | copy_char_table (Lisp_Object table) | 185 | copy_char_table (Lisp_Object table) |
| 186 | { | 186 | { |
| 187 | Lisp_Object copy; | ||
| 188 | int size = PVSIZE (table); | 187 | int size = PVSIZE (table); |
| 189 | int i; | 188 | Lisp_Object copy = make_nil_vector (size); |
| 190 | |||
| 191 | copy = Fmake_vector (make_fixnum (size), Qnil); | ||
| 192 | XSETPVECTYPE (XVECTOR (copy), PVEC_CHAR_TABLE); | 189 | XSETPVECTYPE (XVECTOR (copy), PVEC_CHAR_TABLE); |
| 193 | set_char_table_defalt (copy, XCHAR_TABLE (table)->defalt); | 190 | set_char_table_defalt (copy, XCHAR_TABLE (table)->defalt); |
| 194 | set_char_table_parent (copy, XCHAR_TABLE (table)->parent); | 191 | set_char_table_parent (copy, XCHAR_TABLE (table)->parent); |
| 195 | set_char_table_purpose (copy, XCHAR_TABLE (table)->purpose); | 192 | set_char_table_purpose (copy, XCHAR_TABLE (table)->purpose); |
| 196 | for (i = 0; i < chartab_size[0]; i++) | 193 | for (int i = 0; i < chartab_size[0]; i++) |
| 197 | set_char_table_contents | 194 | set_char_table_contents |
| 198 | (copy, i, | 195 | (copy, i, |
| 199 | (SUB_CHAR_TABLE_P (XCHAR_TABLE (table)->contents[i]) | 196 | (SUB_CHAR_TABLE_P (XCHAR_TABLE (table)->contents[i]) |
| @@ -201,7 +198,7 @@ copy_char_table (Lisp_Object table) | |||
| 201 | : XCHAR_TABLE (table)->contents[i])); | 198 | : XCHAR_TABLE (table)->contents[i])); |
| 202 | set_char_table_ascii (copy, char_table_ascii (copy)); | 199 | set_char_table_ascii (copy, char_table_ascii (copy)); |
| 203 | size -= CHAR_TABLE_STANDARD_SLOTS; | 200 | size -= CHAR_TABLE_STANDARD_SLOTS; |
| 204 | for (i = 0; i < size; i++) | 201 | for (int i = 0; i < size; i++) |
| 205 | set_char_table_extras (copy, i, XCHAR_TABLE (table)->extras[i]); | 202 | set_char_table_extras (copy, i, XCHAR_TABLE (table)->extras[i]); |
| 206 | 203 | ||
| 207 | XSETCHAR_TABLE (copy, XCHAR_TABLE (copy)); | 204 | XSETCHAR_TABLE (copy, XCHAR_TABLE (copy)); |
| @@ -1249,7 +1246,7 @@ uniprop_encode_value_numeric (Lisp_Object table, Lisp_Object value) | |||
| 1249 | set_char_table_extras (table, 4, | 1246 | set_char_table_extras (table, 4, |
| 1250 | CALLN (Fvconcat, | 1247 | CALLN (Fvconcat, |
| 1251 | XCHAR_TABLE (table)->extras[4], | 1248 | XCHAR_TABLE (table)->extras[4], |
| 1252 | Fmake_vector (make_fixnum (1), value))); | 1249 | make_vector (1, value))); |
| 1253 | return make_fixnum (i); | 1250 | return make_fixnum (i); |
| 1254 | } | 1251 | } |
| 1255 | 1252 | ||