aboutsummaryrefslogtreecommitdiffstats
path: root/src/bytecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bytecode.c')
-rw-r--r--src/bytecode.c17
1 files changed, 5 insertions, 12 deletions
diff --git a/src/bytecode.c b/src/bytecode.c
index 0ea646a9741..f1bdfd9d9c5 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -501,7 +501,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
501 Lisp_Object args_template, ptrdiff_t nargs, Lisp_Object *args) 501 Lisp_Object args_template, ptrdiff_t nargs, Lisp_Object *args)
502{ 502{
503 ptrdiff_t count = SPECPDL_INDEX (); 503 ptrdiff_t count = SPECPDL_INDEX ();
504 ptrdiff_t volatile count_volatile;
505#ifdef BYTE_CODE_METER 504#ifdef BYTE_CODE_METER
506 int volatile this_op = 0; 505 int volatile this_op = 0;
507 int prev_op; 506 int prev_op;
@@ -509,14 +508,12 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
509 int op; 508 int op;
510 /* Lisp_Object v1, v2; */ 509 /* Lisp_Object v1, v2; */
511 Lisp_Object *vectorp; 510 Lisp_Object *vectorp;
512 Lisp_Object *volatile vectorp_volatile;
513#ifdef BYTE_CODE_SAFE 511#ifdef BYTE_CODE_SAFE
514 ptrdiff_t volatile const_length; 512 ptrdiff_t const_length;
515 Lisp_Object *volatile stacke; 513 Lisp_Object *stacke;
516 ptrdiff_t volatile bytestr_length; 514 ptrdiff_t bytestr_length;
517#endif 515#endif
518 struct byte_stack stack; 516 struct byte_stack stack;
519 struct byte_stack volatile stack_volatile;
520 Lisp_Object *top; 517 Lisp_Object *top;
521 Lisp_Object result; 518 Lisp_Object result;
522 enum handlertype type; 519 enum handlertype type;
@@ -1122,9 +1119,6 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
1122 PUSH_HANDLER (c, tag, type); 1119 PUSH_HANDLER (c, tag, type);
1123 c->bytecode_dest = dest; 1120 c->bytecode_dest = dest;
1124 c->bytecode_top = top; 1121 c->bytecode_top = top;
1125 count_volatile = count;
1126 stack_volatile = stack;
1127 vectorp_volatile = vectorp;
1128 1122
1129 if (sys_setjmp (c->jmp)) 1123 if (sys_setjmp (c->jmp))
1130 { 1124 {
@@ -1135,12 +1129,11 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth,
1135 handlerlist = c->next; 1129 handlerlist = c->next;
1136 PUSH (c->val); 1130 PUSH (c->val);
1137 CHECK_RANGE (dest); 1131 CHECK_RANGE (dest);
1138 stack = stack_volatile; 1132 /* Might have been re-set by longjmp! */
1133 stack.byte_string_start = SDATA (stack.byte_string);
1139 stack.pc = stack.byte_string_start + dest; 1134 stack.pc = stack.byte_string_start + dest;
1140 } 1135 }
1141 1136
1142 count = count_volatile;
1143 vectorp = vectorp_volatile;
1144 NEXT; 1137 NEXT;
1145 } 1138 }
1146 1139