diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2019-01-09 09:52:38 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2019-01-09 09:59:10 -0800 |
commit | a84650334e30b2451bf4a8957bf2d57ade296d4e (patch) | |
tree | b5642bb98eb89733def116fb6d864f74855023e2 /src/font.c | |
parent | f9d0fd6c1953138f7473a22917a1508740b2ce40 (diff) | |
download | emacs-a84650334e30b2451bf4a8957bf2d57ade296d4e.tar.gz |
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.
Diffstat (limited to 'src/font.c')
-rw-r--r-- | src/font.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/font.c b/src/font.c index cf68160e59c..3fc77a1d76a 100644 --- a/src/font.c +++ b/src/font.c @@ -2174,13 +2174,12 @@ font_score (Lisp_Object entity, Lisp_Object *spec_prop) static Lisp_Object font_vconcat_entity_vectors (Lisp_Object list) { - EMACS_INT nargs = XFIXNAT (Flength (list)); + ptrdiff_t nargs = list_length (list); Lisp_Object *args; USE_SAFE_ALLOCA; SAFE_ALLOCA_LISP (args, nargs); - ptrdiff_t i; - for (i = 0; i < nargs; i++, list = XCDR (list)) + for (ptrdiff_t i = 0; i < nargs; i++, list = XCDR (list)) args[i] = XCAR (list); Lisp_Object result = Fvconcat (nargs, args); SAFE_FREE (); @@ -3241,7 +3240,7 @@ font_find_for_lface (struct frame *f, Lisp_Object *attrs, Lisp_Object spec, int if (! NILP (alters)) { - EMACS_INT alterslen = XFIXNAT (Flength (alters)); + EMACS_INT alterslen = list_length (alters); SAFE_ALLOCA_LISP (family, alterslen + 2); for (i = 0; CONSP (alters); i++, alters = XCDR (alters)) family[i] = XCAR (alters); |