aboutsummaryrefslogtreecommitdiffstats
path: root/src/font.c
diff options
context:
space:
mode:
authorPaul Eggert2018-12-09 00:18:36 -0800
committerPaul Eggert2018-12-09 00:23:55 -0800
commitd79bb75683ceb4eee2f753eb38fa8db99aff4568 (patch)
treeb0b20c25387c2eb11b2c79e87898bec2c39b14ea /src/font.c
parentc2fdd50c3cb0b03d2414370c58c1aa2a6ec3311d (diff)
downloademacs-d79bb75683ceb4eee2f753eb38fa8db99aff4568.tar.gz
emacs-d79bb75683ceb4eee2f753eb38fa8db99aff4568.zip
Add make_vector and make_nil_vector
This makes the callers a bit easier to read, and doubtless improves efficiency very slightly. It also simplifies possible future changes to allow bignum indexes to buffers. * src/alloc.c (allocate_vectorlike): Prefer ptrdiff_t to size_t when either will do. (make_vector): New function. (Fmake_vector): Use it. * src/buffer.c (syms_of_buffer): * src/bytecode.c (syms_of_bytecode): * src/category.c (Fmake_category_table, init_category_once): * src/ccl.c (syms_of_ccl): * src/character.c (syms_of_character): * src/charset.c (Fdefine_charset_internal) (Ffind_charset_region, Ffind_charset_string): * src/chartab.c (copy_char_table): * src/coding.c (Fdefine_coding_system_internal, syms_of_coding): * src/composite.c (get_composition_id, Fcomposition_get_gstring): * src/composite.h (LGLYPH_NEW): * src/fns.c (concat, Flocale_info, make_hash_table): * src/font.c (font_otf_ValueRecord, font_otf_anchor) (build_style_table, syms_of_font): * src/fontset.c (RFONT_DEF_NEW, fontset_find_font) (dump_fontset, syms_of_fontset): * src/image.c (xpm_make_color_table_v): * src/keyboard.c (modify_event_symbol, menu_bar_items) (parse_menu_item, parse_tool_bar_item, init_tool_bar_items) (syms_of_keyboard): * src/keymap.c (Fdefine_key, describe_map, describe_vector): * src/lread.c (read_vector): * src/macfont.m (macfont_shape): * src/menu.c (init_menu_items): * src/nsfns.m (ns_make_monitor_attribute_list): * src/process.c (conv_sockaddr_to_lisp, network_interface_info): * src/profiler.c (make_log): * src/window.c (Fcurrent_window_configuration): * src/xdisp.c (with_echo_area_buffer_unwind_data) (format_mode_line_unwind_data): * src/xfaces.c (Finternal_make_lisp_face) (Fface_attributes_as_vector): * src/xfns.c (x_make_monitor_attribute_list) (Fx_display_monitor_attributes_list): * src/xfont.c (syms_of_xfont): * src/xselect.c (x_handle_dnd_message): * src/xwidget.c (save_script_callback): Prefer make_nil_vector (N) to Fmake_vector (make_fixnum (N), Qnil). * src/callint.c (Fcall_interactively): * src/charset.c (load_charset_map): * src/chartab.c (Fmake_char_table, uniprop_encode_value_numeric): * src/composite.c (get_composition_id) * src/dispnew.c (Fframe_or_buffer_changed_p) (syms_of_display): * src/fns.c (make_hash_table, maybe_resize_hash_table): * src/font.c (font_style_to_value): * src/fontset.c (FONTSET_ADD, fontset_add): * src/json.c (json_to_lisp): * src/keymap.c (syms_of_keymap): * src/lread.c (init_obarray): * src/profiler.c (make_log, Fprofiler_cpu_log): * src/term.c (term_get_fkeys_1): Prefer make_vector (N, V) to Fmake_vector (make_fixnum (N), V). * src/font.c (build_style_table): * src/macfont.m (macfont_shape): * src/process.c (conv_sockaddr_to_lisp, network_interface_info): Prefer make_uninit_vector if the vector will be initialized soon. * src/lisp.h (make_nil_vector): New function.
Diffstat (limited to 'src/font.c')
-rw-r--r--src/font.c25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/font.c b/src/font.c
index 799d5db205c..e81c267de41 100644
--- a/src/font.c
+++ b/src/font.c
@@ -374,10 +374,10 @@ font_style_to_value (enum font_property_index prop, Lisp_Object val,
374 if (! noerror) 374 if (! noerror)
375 return -1; 375 return -1;
376 eassert (len < 255); 376 eassert (len < 255);
377 elt = Fmake_vector (make_fixnum (2), make_fixnum (100)); 377 elt = make_vector (2, make_fixnum (100));
378 ASET (elt, 1, val); 378 ASET (elt, 1, val);
379 ASET (font_style_table, prop - FONT_WEIGHT_INDEX, 379 ASET (font_style_table, prop - FONT_WEIGHT_INDEX,
380 CALLN (Fvconcat, table, Fmake_vector (make_fixnum (1), elt))); 380 CALLN (Fvconcat, table, make_vector (1, elt)));
381 return (100 << 8) | (i << 4); 381 return (100 << 8) | (i << 4);
382 } 382 }
383 else 383 else
@@ -2035,7 +2035,7 @@ font_otf_DeviceTable (OTF_DeviceTable *device_table)
2035Lisp_Object 2035Lisp_Object
2036font_otf_ValueRecord (int value_format, OTF_ValueRecord *value_record) 2036font_otf_ValueRecord (int value_format, OTF_ValueRecord *value_record)
2037{ 2037{
2038 Lisp_Object val = Fmake_vector (make_fixnum (8), Qnil); 2038 Lisp_Object val = make_nil_vector (8);
2039 2039
2040 if (value_format & OTF_XPlacement) 2040 if (value_format & OTF_XPlacement)
2041 ASET (val, 0, make_fixnum (value_record->XPlacement)); 2041 ASET (val, 0, make_fixnum (value_record->XPlacement));
@@ -2059,9 +2059,7 @@ font_otf_ValueRecord (int value_format, OTF_ValueRecord *value_record)
2059Lisp_Object 2059Lisp_Object
2060font_otf_Anchor (OTF_Anchor *anchor) 2060font_otf_Anchor (OTF_Anchor *anchor)
2061{ 2061{
2062 Lisp_Object val; 2062 Lisp_Object val = make_nil_vector (anchor->AnchorFormat + 1);
2063
2064 val = Fmake_vector (make_fixnum (anchor->AnchorFormat + 1), Qnil);
2065 ASET (val, 0, make_fixnum (anchor->XCoordinate)); 2063 ASET (val, 0, make_fixnum (anchor->XCoordinate));
2066 ASET (val, 1, make_fixnum (anchor->YCoordinate)); 2064 ASET (val, 1, make_fixnum (anchor->YCoordinate));
2067 if (anchor->AnchorFormat == 2) 2065 if (anchor->AnchorFormat == 2)
@@ -5170,14 +5168,13 @@ If the named font is not yet loaded, return nil. */)
5170static Lisp_Object 5168static Lisp_Object
5171build_style_table (const struct table_entry *entry, int nelement) 5169build_style_table (const struct table_entry *entry, int nelement)
5172{ 5170{
5173 int i, j; 5171 Lisp_Object table = make_uninit_vector (nelement);
5174 Lisp_Object table, elt; 5172 for (int i = 0; i < nelement; i++)
5175
5176 table = make_uninit_vector (nelement);
5177 for (i = 0; i < nelement; i++)
5178 { 5173 {
5179 for (j = 0; entry[i].names[j]; j++); 5174 int j;
5180 elt = Fmake_vector (make_fixnum (j + 1), Qnil); 5175 for (j = 0; entry[i].names[j]; j++)
5176 continue;
5177 Lisp_Object elt = make_nil_vector (j + 1);
5181 ASET (elt, 0, make_fixnum (entry[i].numeric)); 5178 ASET (elt, 0, make_fixnum (entry[i].numeric));
5182 for (j = 0; entry[i].names[j]; j++) 5179 for (j = 0; entry[i].names[j]; j++)
5183 ASET (elt, j + 1, intern_c_string (entry[i].names[j])); 5180 ASET (elt, j + 1, intern_c_string (entry[i].names[j]));
@@ -5359,7 +5356,7 @@ syms_of_font (void)
5359 scratch_font_prefer = Ffont_spec (0, NULL); 5356 scratch_font_prefer = Ffont_spec (0, NULL);
5360 5357
5361 staticpro (&Vfont_log_deferred); 5358 staticpro (&Vfont_log_deferred);
5362 Vfont_log_deferred = Fmake_vector (make_fixnum (3), Qnil); 5359 Vfont_log_deferred = make_nil_vector (3);
5363 5360
5364#if 0 5361#if 0
5365#ifdef HAVE_LIBOTF 5362#ifdef HAVE_LIBOTF