summaryrefslogtreecommitdiff
path: root/src/eval.c
diff options
context:
space:
mode:
authorMattias EngdegÄrd <mattiase@acm.org>2022-01-18 13:10:05 +0100
committerMattias EngdegÄrd <mattiase@acm.org>2022-03-13 17:51:49 +0100
commit267f41c7ce1e02f392b57aa338d387e7627df184 (patch)
tree72b4f486c5a429fd462269b37575c55d065f2b57 /src/eval.c
parent35f75b63b51660190b48020c048701ae8553ea1f (diff)
Simplify exec_byte_code arguments
Pass the function object and encoded arity, not the other components. This speeds up several call paths and is necessary for improvements to come. * src/bytecode.c (Fbyte_code): Make a new byte code object for execution. This is slower but performance isn't critical here. (exec_byte_code): Retrieve components from the passed function. * src/eval.c (fetch_and_exec_byte_code): * src/lisp.h (exec_byte_code): Update signature.
Diffstat (limited to 'src/eval.c')
-rw-r--r--src/eval.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c
index b747d2cbb6f..b1c1a8c676b 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -3105,10 +3105,7 @@ fetch_and_exec_byte_code (Lisp_Object fun, ptrdiff_t args_template,
if (CONSP (AREF (fun, COMPILED_BYTECODE)))
Ffetch_bytecode (fun);
- return exec_byte_code (AREF (fun, COMPILED_BYTECODE),
- AREF (fun, COMPILED_CONSTANTS),
- AREF (fun, COMPILED_STACK_DEPTH),
- args_template, nargs, args);
+ return exec_byte_code (fun, args_template, nargs, args);
}
static Lisp_Object