diff options
| author | Paul Eggert | 2015-01-19 00:56:18 -0800 |
|---|---|---|
| committer | Paul Eggert | 2015-01-19 01:01:58 -0800 |
| commit | b7f83adda5a32140811e8e7decc4394d64cada3d (patch) | |
| tree | 98d7d6763a62fc033464e4f2d5edde5c937623dd /src/eval.c | |
| parent | 9592a014df784e67a4647d5b6424f2758dfaad3c (diff) | |
| download | emacs-b7f83adda5a32140811e8e7decc4394d64cada3d.tar.gz emacs-b7f83adda5a32140811e8e7decc4394d64cada3d.zip | |
Prefer memset to repeatedly assigning Qnil
* alloc.c (allocate_pseudovector): Catch more bogus values.
* alloc.c (allocate_pseudovector):
* callint.c (Fcall_interactively):
* coding.c (syms_of_coding):
* fringe.c (init_fringe):
Verify that Qnil == 0.
* callint.c (Fcall_interactively):
* eval.c (Fapply, Ffuncall):
* fns.c (mapcar1, larger_vector):
* font.c (font_expand_wildcards):
* fringe.c (init_fringe):
Prefer memset to assigning zeros by hand.
* callint.c (Fcall_interactively):
Remove duplicate assignment of Qnil to args[i].
* coding.c (syms_of_coding):
Prefer LISP_INITIALLY_ZERO to assigning zeros by hand.
* fileio.c (Ffile_selinux_context):
Rewrite to avoid need for Lisp_Object array.
* lisp.h (XLI_BUILTIN_LISPSYM): New macro.
(DEFINE_LISP_SYMBOL_END): Use it.
(NIL_IS_ZERO): New constant.
(memsetnil): New function.
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/eval.c b/src/eval.c index 5cadb1bc2de..ddf6535cabc 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -2299,8 +2299,7 @@ usage: (apply FUNCTION &rest ARGUMENTS) */) | |||
| 2299 | /* Avoid making funcall cons up a yet another new vector of arguments | 2299 | /* Avoid making funcall cons up a yet another new vector of arguments |
| 2300 | by explicitly supplying nil's for optional values. */ | 2300 | by explicitly supplying nil's for optional values. */ |
| 2301 | SAFE_ALLOCA_LISP (funcall_args, 1 + XSUBR (fun)->max_args); | 2301 | SAFE_ALLOCA_LISP (funcall_args, 1 + XSUBR (fun)->max_args); |
| 2302 | for (i = numargs; i < XSUBR (fun)->max_args; /* nothing */) | 2302 | memsetnil (funcall_args + numargs + 1, XSUBR (fun)->max_args - numargs); |
| 2303 | funcall_args[++i] = Qnil; | ||
| 2304 | funcall_nargs = 1 + XSUBR (fun)->max_args; | 2303 | funcall_nargs = 1 + XSUBR (fun)->max_args; |
| 2305 | } | 2304 | } |
| 2306 | else | 2305 | else |
| @@ -2638,8 +2637,8 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) | |||
| 2638 | ptrdiff_t numargs = nargs - 1; | 2637 | ptrdiff_t numargs = nargs - 1; |
| 2639 | Lisp_Object lisp_numargs; | 2638 | Lisp_Object lisp_numargs; |
| 2640 | Lisp_Object val; | 2639 | Lisp_Object val; |
| 2641 | register Lisp_Object *internal_args; | 2640 | Lisp_Object *internal_args; |
| 2642 | ptrdiff_t i, count; | 2641 | ptrdiff_t count; |
| 2643 | 2642 | ||
| 2644 | QUIT; | 2643 | QUIT; |
| 2645 | 2644 | ||
| @@ -2694,8 +2693,8 @@ usage: (funcall FUNCTION &rest ARGUMENTS) */) | |||
| 2694 | eassert (XSUBR (fun)->max_args <= ARRAYELTS (internal_argbuf)); | 2693 | eassert (XSUBR (fun)->max_args <= ARRAYELTS (internal_argbuf)); |
| 2695 | internal_args = internal_argbuf; | 2694 | internal_args = internal_argbuf; |
| 2696 | memcpy (internal_args, args + 1, numargs * word_size); | 2695 | memcpy (internal_args, args + 1, numargs * word_size); |
| 2697 | for (i = numargs; i < XSUBR (fun)->max_args; i++) | 2696 | memsetnil (internal_args + numargs, |
| 2698 | internal_args[i] = Qnil; | 2697 | XSUBR (fun)->max_args - numargs); |
| 2699 | } | 2698 | } |
| 2700 | else | 2699 | else |
| 2701 | internal_args = args + 1; | 2700 | internal_args = args + 1; |