aboutsummaryrefslogtreecommitdiffstats
path: root/src/chartab.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/chartab.c')
-rw-r--r--src/chartab.c13
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)
184Lisp_Object 184Lisp_Object
185copy_char_table (Lisp_Object table) 185copy_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