From a84650334e30b2451bf4a8957bf2d57ade296d4e Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Wed, 9 Jan 2019 09:52:38 -0800 Subject: Use shortcuts for Flength When calculating the length of a Lisp object whose type is known, use a specialized length operation on it to save a bit of runtime overhead. * src/callint.c (Fcall_interactively): * src/minibuf.c (read_minibuf_unwind): Use ASIZE rather than Flength on values that must be vectors. * src/charset.c (Fsort_charsets): * src/coding.c (detect_coding_sjis): (Fdefine_coding_system_internal): * src/data.c (wrong_choice): * src/eval.c (Flet, eval_sub, Fapply, apply_lambda): * src/fns.c (sort_list): * src/font.c (font_vconcat_entity_vectors) (font_find_for_lface): * src/frame.c (Fmodify_frame_parameters): * src/fringe.c (get_logical_fringe_bitmap): * src/ftfont.c (ftfont_get_open_type_spec): * src/gtkutil.c (xg_print_frames_dialog): * src/lread.c (read1, read_vector): * src/keymap.c (Fkey_description): * src/kqueue.c (Fkqueue_add_watch): * src/macfont.m (macfont_get_open_type_spec): * src/menu.c (parse_single_submenu, x_popup_menu_1): * src/minibuf.c (Finternal_complete_buffer): * src/nsfont.m (ns_findfonts, nsfont_list_family): * src/process.c (Fmake_process): * src/search.c (Fset_match_data): * src/xfaces.c (Fx_family_fonts): Use list_length rather than Flength on values that must be lists. * src/fns.c (list_length): New function. (Flength): Use it. * src/nsfont.m (ns_findfonts): Use !NILP (x) rather than XFIXNUM (Flength (x)) != 0. * src/xdisp.c (store_mode_line_string): Use SCHARS rather than Flength on values that must be strings. --- src/charset.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src/charset.c') diff --git a/src/charset.c b/src/charset.c index 427349b298a..724b35536ed 100644 --- a/src/charset.c +++ b/src/charset.c @@ -2242,8 +2242,7 @@ Return the sorted list. CHARSETS is modified by side effects. See also `charset-priority-list' and `set-charset-priority'. */) (Lisp_Object charsets) { - Lisp_Object len = Flength (charsets); - ptrdiff_t n = XFIXNAT (len), i, j; + ptrdiff_t n = list_length (charsets), i, j; int done; Lisp_Object tail, elt, attrs; struct charset_sort_data *sort_data; -- cgit v1.2.1