diff options
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index da1855d6bab..1018e81d24c 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -382,7 +382,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 382 | unsigned char const *bytestr_data = SDATA (bytestr); | 382 | unsigned char const *bytestr_data = SDATA (bytestr); |
| 383 | unsigned char const *pc = bytestr_data; | 383 | unsigned char const *pc = bytestr_data; |
| 384 | #if BYTE_CODE_SAFE || !defined NDEBUG | 384 | #if BYTE_CODE_SAFE || !defined NDEBUG |
| 385 | ptrdiff_t count = SPECPDL_INDEX (); | 385 | specpdl_ref count = SPECPDL_INDEX (); |
| 386 | #endif | 386 | #endif |
| 387 | 387 | ||
| 388 | /* ARGS_TEMPLATE is composed of bit fields: | 388 | /* ARGS_TEMPLATE is composed of bit fields: |
| @@ -650,7 +650,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 650 | Lisp_Object fun = TOP; | 650 | Lisp_Object fun = TOP; |
| 651 | Lisp_Object *args = &TOP + 1; | 651 | Lisp_Object *args = &TOP + 1; |
| 652 | 652 | ||
| 653 | ptrdiff_t count1 = record_in_backtrace (fun, args, numargs); | 653 | specpdl_ref count1 = record_in_backtrace (fun, args, numargs); |
| 654 | maybe_gc (); | 654 | maybe_gc (); |
| 655 | if (debug_on_next_call) | 655 | if (debug_on_next_call) |
| 656 | do_debug_on_call (Qlambda, count1); | 656 | do_debug_on_call (Qlambda, count1); |
| @@ -678,7 +678,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 678 | val = funcall_general (original_fun, numargs, args); | 678 | val = funcall_general (original_fun, numargs, args); |
| 679 | 679 | ||
| 680 | lisp_eval_depth--; | 680 | lisp_eval_depth--; |
| 681 | if (backtrace_debug_on_exit (specpdl + count1)) | 681 | if (backtrace_debug_on_exit (specpdl_ref_to_ptr (count1))) |
| 682 | val = call_debugger (list2 (Qexit, val)); | 682 | val = call_debugger (list2 (Qexit, val)); |
| 683 | specpdl_ptr--; | 683 | specpdl_ptr--; |
| 684 | 684 | ||
| @@ -702,7 +702,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 702 | CASE (Bunbind5): | 702 | CASE (Bunbind5): |
| 703 | op -= Bunbind; | 703 | op -= Bunbind; |
| 704 | dounbind: | 704 | dounbind: |
| 705 | unbind_to (SPECPDL_INDEX () - op, Qnil); | 705 | unbind_to (specpdl_ref_add (SPECPDL_INDEX (), -op), Qnil); |
| 706 | NEXT; | 706 | NEXT; |
| 707 | 707 | ||
| 708 | CASE (Bgoto): | 708 | CASE (Bgoto): |
| @@ -796,7 +796,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 796 | 796 | ||
| 797 | CASE (Bsave_window_excursion): /* Obsolete since 24.1. */ | 797 | CASE (Bsave_window_excursion): /* Obsolete since 24.1. */ |
| 798 | { | 798 | { |
| 799 | ptrdiff_t count1 = SPECPDL_INDEX (); | 799 | specpdl_ref count1 = SPECPDL_INDEX (); |
| 800 | record_unwind_protect (restore_window_configuration, | 800 | record_unwind_protect (restore_window_configuration, |
| 801 | Fcurrent_window_configuration (Qnil)); | 801 | Fcurrent_window_configuration (Qnil)); |
| 802 | TOP = Fprogn (TOP); | 802 | TOP = Fprogn (TOP); |
| @@ -872,7 +872,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 872 | temp_output_buffer_show (TOP); | 872 | temp_output_buffer_show (TOP); |
| 873 | TOP = v1; | 873 | TOP = v1; |
| 874 | /* pop binding of standard-output */ | 874 | /* pop binding of standard-output */ |
| 875 | unbind_to (SPECPDL_INDEX () - 1, Qnil); | 875 | unbind_to (specpdl_ref_add (SPECPDL_INDEX (), -1), Qnil); |
| 876 | NEXT; | 876 | NEXT; |
| 877 | } | 877 | } |
| 878 | 878 | ||
| @@ -1585,10 +1585,10 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1585 | exit: | 1585 | exit: |
| 1586 | 1586 | ||
| 1587 | #if BYTE_CODE_SAFE || !defined NDEBUG | 1587 | #if BYTE_CODE_SAFE || !defined NDEBUG |
| 1588 | if (SPECPDL_INDEX () != count) | 1588 | if (!specpdl_ref_eq (SPECPDL_INDEX (), count)) |
| 1589 | { | 1589 | { |
| 1590 | /* Binds and unbinds are supposed to be compiled balanced. */ | 1590 | /* Binds and unbinds are supposed to be compiled balanced. */ |
| 1591 | if (SPECPDL_INDEX () > count) | 1591 | if (specpdl_ref_lt (count, SPECPDL_INDEX ())) |
| 1592 | unbind_to (count, Qnil); | 1592 | unbind_to (count, Qnil); |
| 1593 | error ("binding stack not balanced (serious byte compiler bug)"); | 1593 | error ("binding stack not balanced (serious byte compiler bug)"); |
| 1594 | } | 1594 | } |