diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2022-02-17 14:39:42 +0100 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2022-02-17 14:52:04 +0100 |
commit | c1111e944784f68593964e528a9bd0dd6a6314fb (patch) | |
tree | a3fd23eb850a9e85e645db974e3d7610f11bac06 /src | |
parent | df6e989f7ab1044e6f98be4b503761af07cd370b (diff) | |
download | emacs-c1111e944784f68593964e528a9bd0dd6a6314fb.tar.gz emacs-c1111e944784f68593964e528a9bd0dd6a6314fb.tar.bz2 emacs-c1111e944784f68593964e528a9bd0dd6a6314fb.zip |
Fix or remove outdated comments
* src/eval.c (funcall_lambda): Rewrite obsolete comment.
* src/bytecode.c (exec_byte_code): Remove lying comment and
unneeded #define.
* lisp/emacs-lisp/byte-opt.el: Remove car. Keep pig.
(byte-compile-log-lap-1): Remove obsolete and irrelevant comment.
Diffstat (limited to 'src')
-rw-r--r-- | src/bytecode.c | 6 | ||||
-rw-r--r-- | src/eval.c | 20 |
2 files changed, 9 insertions, 17 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index bda9a39b7f3..96f1f905812 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -458,17 +458,13 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, #ifdef BYTE_CODE_THREADED - /* A convenience define that saves us a lot of typing and makes - the table clearer. */ -#define LABEL(OP) [OP] = &&insn_ ## OP - /* This is the dispatch table for the threaded interpreter. */ static const void *const targets[256] = { [0 ... (Bconstant - 1)] = &&insn_default, [Bconstant ... 255] = &&insn_Bconstant, -#define DEFINE(name, value) LABEL (name) , +#define DEFINE(name, value) [name] = &&insn_ ## name, BYTE_CODES #undef DEFINE }; diff --git a/src/eval.c b/src/eval.c index 7472e649afe..d3342289fbb 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3243,19 +3243,15 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs, else if (COMPILEDP (fun)) { syms_left = AREF (fun, COMPILED_ARGLIST); + /* Bytecode objects using lexical binding have an integral + ARGLIST slot value: pass the arguments to the byte-code + engine directly. */ if (FIXNUMP (syms_left)) - /* A byte-code object with an integer args template means we - shouldn't bind any arguments, instead just call the byte-code - interpreter directly; it will push arguments as necessary. - - Byte-code objects with a nil args template (the default) - have dynamically-bound arguments, and use the - argument-binding code below instead (as do all interpreted - functions, even lexically bound ones). */ - { - return fetch_and_exec_byte_code (fun, XFIXNUM (syms_left), - nargs, arg_vector); - } + return fetch_and_exec_byte_code (fun, XFIXNUM (syms_left), + nargs, arg_vector); + /* Otherwise the bytecode object uses dynamic binding and the + ARGLIST slot contains a standard formal argument list whose + variables are bound dynamically below. */ lexenv = Qnil; } #ifdef HAVE_MODULES |