diff options
| author | Paul Eggert | 2019-01-09 09:52:38 -0800 |
|---|---|---|
| committer | Paul Eggert | 2019-01-09 09:59:10 -0800 |
| commit | a84650334e30b2451bf4a8957bf2d57ade296d4e (patch) | |
| tree | b5642bb98eb89733def116fb6d864f74855023e2 /src/data.c | |
| parent | f9d0fd6c1953138f7473a22917a1508740b2ce40 (diff) | |
| download | emacs-a84650334e30b2451bf4a8957bf2d57ade296d4e.tar.gz emacs-a84650334e30b2451bf4a8957bf2d57ade296d4e.zip | |
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/data.c')
| -rw-r--r-- | src/data.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/data.c b/src/data.c index 1c124740815..a9908a34f4f 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -980,14 +980,12 @@ chain of aliases, signal a `cyclic-variable-indirection' error. */) | |||
| 980 | swap_in_symval_forwarding for that. */ | 980 | swap_in_symval_forwarding for that. */ |
| 981 | 981 | ||
| 982 | Lisp_Object | 982 | Lisp_Object |
| 983 | do_symval_forwarding (register union Lisp_Fwd *valcontents) | 983 | do_symval_forwarding (union Lisp_Fwd *valcontents) |
| 984 | { | 984 | { |
| 985 | register Lisp_Object val; | ||
| 986 | switch (XFWDTYPE (valcontents)) | 985 | switch (XFWDTYPE (valcontents)) |
| 987 | { | 986 | { |
| 988 | case Lisp_Fwd_Int: | 987 | case Lisp_Fwd_Int: |
| 989 | XSETINT (val, *XFIXNUMFWD (valcontents)->intvar); | 988 | return make_fixnum (*XFIXNUMFWD (valcontents)->intvar); |
| 990 | return val; | ||
| 991 | 989 | ||
| 992 | case Lisp_Fwd_Bool: | 990 | case Lisp_Fwd_Bool: |
| 993 | return (*XBOOLFWD (valcontents)->boolvar ? Qt : Qnil); | 991 | return (*XBOOLFWD (valcontents)->boolvar ? Qt : Qnil); |
| @@ -1023,7 +1021,7 @@ do_symval_forwarding (register union Lisp_Fwd *valcontents) | |||
| 1023 | void | 1021 | void |
| 1024 | wrong_choice (Lisp_Object choice, Lisp_Object wrong) | 1022 | wrong_choice (Lisp_Object choice, Lisp_Object wrong) |
| 1025 | { | 1023 | { |
| 1026 | ptrdiff_t i = 0, len = XFIXNUM (Flength (choice)); | 1024 | ptrdiff_t i = 0, len = list_length (choice); |
| 1027 | Lisp_Object obj, *args; | 1025 | Lisp_Object obj, *args; |
| 1028 | AUTO_STRING (one_of, "One of "); | 1026 | AUTO_STRING (one_of, "One of "); |
| 1029 | AUTO_STRING (comma, ", "); | 1027 | AUTO_STRING (comma, ", "); |