aboutsummaryrefslogtreecommitdiffstats
path: root/src/keymap.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/keymap.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/keymap.c')
-rw-r--r--src/keymap.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/src/keymap.c b/src/keymap.c
index 3a79bf4c5aa..a1c9eb6c10e 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1093,7 +1093,7 @@ binding KEY to DEF is added at the front of KEYMAP. */)
1093 1093
1094 if (VECTORP (def) && ASIZE (def) > 0 && CONSP (AREF (def, 0))) 1094 if (VECTORP (def) && ASIZE (def) > 0 && CONSP (AREF (def, 0)))
1095 { /* DEF is apparently an XEmacs-style keyboard macro. */ 1095 { /* DEF is apparently an XEmacs-style keyboard macro. */
1096 Lisp_Object tmp = Fmake_vector (make_fixnum (ASIZE (def)), Qnil); 1096 Lisp_Object tmp = make_nil_vector (ASIZE (def));
1097 ptrdiff_t i = ASIZE (def); 1097 ptrdiff_t i = ASIZE (def);
1098 while (--i >= 0) 1098 while (--i >= 0)
1099 { 1099 {
@@ -1931,14 +1931,12 @@ then the value includes only maps for prefixes that start with PREFIX. */)
1931 we don't have to deal with the possibility of a string. */ 1931 we don't have to deal with the possibility of a string. */
1932 if (STRINGP (prefix)) 1932 if (STRINGP (prefix))
1933 { 1933 {
1934 int i, i_byte, c; 1934 ptrdiff_t i_byte = 0;
1935 Lisp_Object copy; 1935 Lisp_Object copy = make_nil_vector (SCHARS (prefix));
1936 1936 for (ptrdiff_t i = 0; i < SCHARS (prefix); )
1937 copy = Fmake_vector (make_fixnum (SCHARS (prefix)), Qnil);
1938 for (i = 0, i_byte = 0; i < SCHARS (prefix);)
1939 { 1937 {
1940 int i_before = i; 1938 ptrdiff_t i_before = i;
1941 1939 int c;
1942 FETCH_STRING_CHAR_ADVANCE (c, prefix, i, i_byte); 1940 FETCH_STRING_CHAR_ADVANCE (c, prefix, i, i_byte);
1943 if (SINGLE_BYTE_CHAR_P (c) && (c & 0200)) 1941 if (SINGLE_BYTE_CHAR_P (c) && (c & 0200))
1944 c ^= 0200 | meta_modifier; 1942 c ^= 0200 | meta_modifier;
@@ -3141,7 +3139,7 @@ describe_map (Lisp_Object map, Lisp_Object prefix,
3141 /* This vector gets used to present single keys to Flookup_key. Since 3139 /* This vector gets used to present single keys to Flookup_key. Since
3142 that is done once per keymap element, we don't want to cons up a 3140 that is done once per keymap element, we don't want to cons up a
3143 fresh vector every time. */ 3141 fresh vector every time. */
3144 kludge = Fmake_vector (make_fixnum (1), Qnil); 3142 kludge = make_nil_vector (1);
3145 definition = Qnil; 3143 definition = Qnil;
3146 3144
3147 map = call1 (Qkeymap_canonicalize, map); 3145 map = call1 (Qkeymap_canonicalize, map);
@@ -3390,7 +3388,7 @@ describe_vector (Lisp_Object vector, Lisp_Object prefix, Lisp_Object args,
3390 /* This vector gets used to present single keys to Flookup_key. Since 3388 /* This vector gets used to present single keys to Flookup_key. Since
3391 that is done once per vector element, we don't want to cons up a 3389 that is done once per vector element, we don't want to cons up a
3392 fresh vector every time. */ 3390 fresh vector every time. */
3393 kludge = Fmake_vector (make_fixnum (1), Qnil); 3391 kludge = make_nil_vector (1);
3394 3392
3395 if (partial) 3393 if (partial)
3396 suppress = intern ("suppress-keymap"); 3394 suppress = intern ("suppress-keymap");
@@ -3690,7 +3688,7 @@ be preferred. */);
3690 DEFSYM (Qremap, "remap"); 3688 DEFSYM (Qremap, "remap");
3691 DEFSYM (QCadvertised_binding, ":advertised-binding"); 3689 DEFSYM (QCadvertised_binding, ":advertised-binding");
3692 3690
3693 command_remapping_vector = Fmake_vector (make_fixnum (2), Qremap); 3691 command_remapping_vector = make_vector (2, Qremap);
3694 staticpro (&command_remapping_vector); 3692 staticpro (&command_remapping_vector);
3695 3693
3696 where_is_cache_keymaps = Qt; 3694 where_is_cache_keymaps = Qt;