aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
authorrocky2020-06-26 19:40:11 -0400
committerrocky2020-06-26 19:40:11 -0400
commitafa6a9733e5ce0dc169bc8059028f987e1f33d14 (patch)
tree33e922d1668fcc5f46de46a71f8eddc145c20120 /src/bytecode.c
parentacba19e24768112b13820c4e9e12eff4abc5d3b4 (diff)
parentef71dc437fdcdf61d61519e5197c6e3016d8f3a5 (diff)
downloademacs-afa6a9733e5ce0dc169bc8059028f987e1f33d14.tar.gz
emacs-afa6a9733e5ce0dc169bc8059028f987e1f33d14.zip
Merge feature/zach-soc-bytecode-in-traceback
Diffstat (limited to 'src/bytecode.c')
-rw-r--r--src/bytecode.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index 5ac30aa1010..6b7e9cbc7b9 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -424,13 +424,14 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
424 Threading provides a performance boost. These macros are how 424 Threading provides a performance boost. These macros are how
425 we allow the code to be compiled both ways. */ 425 we allow the code to be compiled both ways. */
426#ifdef BYTE_CODE_THREADED 426#ifdef BYTE_CODE_THREADED
427#define UPDATE_OFFSET (backtrace_byte_offset = pc - bytestr_data);
427 /* The CASE macro introduces an instruction's body. It is 428 /* The CASE macro introduces an instruction's body. It is
428 either a label or a case label. */ 429 either a label or a case label. */
429#define CASE(OP) insn_ ## OP 430#define CASE(OP) insn_ ## OP
430 /* NEXT is invoked at the end of an instruction to go to the 431 /* NEXT is invoked at the end of an instruction to go to the
431 next instruction. It is either a computed goto, or a 432 next instruction. It is either a computed goto, or a
432 plain break. */ 433 plain break. */
433#define NEXT goto *(targets[op = FETCH]) 434#define NEXT UPDATE_OFFSET goto *(targets[op = FETCH])
434 /* FIRST is like NEXT, but is only used at the start of the 435 /* FIRST is like NEXT, but is only used at the start of the
435 interpreter body. In the switch-based interpreter it is the 436 interpreter body. In the switch-based interpreter it is the
436 switch, so the threaded definition must include a semicolon. */ 437 switch, so the threaded definition must include a semicolon. */
@@ -1448,7 +1449,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
1448 unbind_to (count, Qnil); 1449 unbind_to (count, Qnil);
1449 error ("binding stack not balanced (serious byte compiler bug)"); 1450 error ("binding stack not balanced (serious byte compiler bug)");
1450 } 1451 }
1451 1452 backtrace_byte_offset = -1;
1452 Lisp_Object result = TOP; 1453 Lisp_Object result = TOP;
1453 SAFE_FREE (); 1454 SAFE_FREE ();
1454 return result; 1455 return result;