diff options
| author | Stefan Monnier | 2011-02-19 00:10:33 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2011-02-19 00:10:33 -0500 |
| commit | e0f57e65692ed73a86926f737388b60faec92767 (patch) | |
| tree | cd119f7a6f2a04673f304fbf8cfaf8fc7c0896f2 /src/bytecode.c | |
| parent | 9a05edc4fcf1eff8966ac327e479bb8f9ca219a9 (diff) | |
| download | emacs-e0f57e65692ed73a86926f737388b60faec92767.tar.gz emacs-e0f57e65692ed73a86926f737388b60faec92767.zip | |
* lisp/subr.el (save-window-excursion): New macro, moved from C.
* lisp/emacs-lisp/lisp-mode.el (save-window-excursion): Don't touch.
* lisp/emacs-lisp/cconv.el (cconv-closure-convert-rec, cconv-analyse-form):
Don't handle save-window-excursion any more.
* lisp/emacs-lisp/bytecomp.el (interactive-p, save-window-excursion):
Don't use the byte-code any more.
(byte-compile-form): Check macro expansion was done.
(byte-compile-save-window-excursion): Remove.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Ignore save-window-excursion. Don't macroepand any more.
* src/window.c (Fsave_window_excursion): Remove. Moved to Lisp.
(syms_of_window): Don't defsubr it.
* src/window.h (Fsave_window_excursion): Don't declare it.
* src/bytecode.c (exec_byte_code): Inline Fsave_window_excursion.
Diffstat (limited to 'src/bytecode.c')
| -rw-r--r-- | src/bytecode.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/bytecode.c b/src/bytecode.c index 1ad01aaf8f7..ad2f7d18ade 100644 --- a/src/bytecode.c +++ b/src/bytecode.c | |||
| @@ -138,7 +138,7 @@ extern Lisp_Object Qand_optional, Qand_rest; | |||
| 138 | 138 | ||
| 139 | #define Bpoint 0140 | 139 | #define Bpoint 0140 |
| 140 | /* Was Bmark in v17. */ | 140 | /* Was Bmark in v17. */ |
| 141 | #define Bsave_current_buffer 0141 | 141 | #define Bsave_current_buffer 0141 /* Obsolete. */ |
| 142 | #define Bgoto_char 0142 | 142 | #define Bgoto_char 0142 |
| 143 | #define Binsert 0143 | 143 | #define Binsert 0143 |
| 144 | #define Bpoint_max 0144 | 144 | #define Bpoint_max 0144 |
| @@ -158,7 +158,7 @@ extern Lisp_Object Qand_optional, Qand_rest; | |||
| 158 | #define Bsave_current_buffer_1 0162 /* Replacing Bsave_current_buffer. */ | 158 | #define Bsave_current_buffer_1 0162 /* Replacing Bsave_current_buffer. */ |
| 159 | #define Bread_char 0162 /* No longer generated as of v19 */ | 159 | #define Bread_char 0162 /* No longer generated as of v19 */ |
| 160 | #define Bset_mark 0163 /* this loser is no longer generated as of v18 */ | 160 | #define Bset_mark 0163 /* this loser is no longer generated as of v18 */ |
| 161 | #define Binteractive_p 0164 /* Needed since interactive-p takes unevalled args */ | 161 | #define Binteractive_p 0164 /* Obsolete. */ |
| 162 | 162 | ||
| 163 | #define Bforward_char 0165 | 163 | #define Bforward_char 0165 |
| 164 | #define Bforward_word 0166 | 164 | #define Bforward_word 0166 |
| @@ -183,7 +183,7 @@ extern Lisp_Object Qand_optional, Qand_rest; | |||
| 183 | #define Bdup 0211 | 183 | #define Bdup 0211 |
| 184 | 184 | ||
| 185 | #define Bsave_excursion 0212 | 185 | #define Bsave_excursion 0212 |
| 186 | #define Bsave_window_excursion 0213 | 186 | #define Bsave_window_excursion 0213 /* Obsolete. */ |
| 187 | #define Bsave_restriction 0214 | 187 | #define Bsave_restriction 0214 |
| 188 | #define Bcatch 0215 | 188 | #define Bcatch 0215 |
| 189 | 189 | ||
| @@ -192,7 +192,7 @@ extern Lisp_Object Qand_optional, Qand_rest; | |||
| 192 | #define Btemp_output_buffer_setup 0220 | 192 | #define Btemp_output_buffer_setup 0220 |
| 193 | #define Btemp_output_buffer_show 0221 | 193 | #define Btemp_output_buffer_show 0221 |
| 194 | 194 | ||
| 195 | #define Bunbind_all 0222 | 195 | #define Bunbind_all 0222 /* Obsolete. */ |
| 196 | 196 | ||
| 197 | #define Bset_marker 0223 | 197 | #define Bset_marker 0223 |
| 198 | #define Bmatch_beginning 0224 | 198 | #define Bmatch_beginning 0224 |
| @@ -763,7 +763,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 763 | AFTER_POTENTIAL_GC (); | 763 | AFTER_POTENTIAL_GC (); |
| 764 | break; | 764 | break; |
| 765 | 765 | ||
| 766 | case Bunbind_all: | 766 | case Bunbind_all: /* Obsolete. */ |
| 767 | /* To unbind back to the beginning of this frame. Not used yet, | 767 | /* To unbind back to the beginning of this frame. Not used yet, |
| 768 | but will be needed for tail-recursion elimination. */ | 768 | but will be needed for tail-recursion elimination. */ |
| 769 | BEFORE_POTENTIAL_GC (); | 769 | BEFORE_POTENTIAL_GC (); |
| @@ -891,16 +891,24 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 891 | save_excursion_save ()); | 891 | save_excursion_save ()); |
| 892 | break; | 892 | break; |
| 893 | 893 | ||
| 894 | case Bsave_current_buffer: | 894 | case Bsave_current_buffer: /* Obsolete. */ |
| 895 | case Bsave_current_buffer_1: | 895 | case Bsave_current_buffer_1: |
| 896 | record_unwind_protect (set_buffer_if_live, Fcurrent_buffer ()); | 896 | record_unwind_protect (set_buffer_if_live, Fcurrent_buffer ()); |
| 897 | break; | 897 | break; |
| 898 | 898 | ||
| 899 | case Bsave_window_excursion: | 899 | case Bsave_window_excursion: /* Obsolete. */ |
| 900 | BEFORE_POTENTIAL_GC (); | 900 | { |
| 901 | TOP = Fsave_window_excursion (TOP); /* FIXME: lexbind */ | 901 | register Lisp_Object val; |
| 902 | AFTER_POTENTIAL_GC (); | 902 | register int count = SPECPDL_INDEX (); |
| 903 | break; | 903 | |
| 904 | record_unwind_protect (Fset_window_configuration, | ||
| 905 | Fcurrent_window_configuration (Qnil)); | ||
| 906 | BEFORE_POTENTIAL_GC (); | ||
| 907 | TOP = Fprogn (TOP); | ||
| 908 | unbind_to (count, TOP); | ||
| 909 | AFTER_POTENTIAL_GC (); | ||
| 910 | break; | ||
| 911 | } | ||
| 904 | 912 | ||
| 905 | case Bsave_restriction: | 913 | case Bsave_restriction: |
| 906 | record_unwind_protect (save_restriction_restore, | 914 | record_unwind_protect (save_restriction_restore, |
| @@ -1412,7 +1420,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, Lisp_Object maxdepth, | |||
| 1412 | AFTER_POTENTIAL_GC (); | 1420 | AFTER_POTENTIAL_GC (); |
| 1413 | break; | 1421 | break; |
| 1414 | 1422 | ||
| 1415 | case Binteractive_p: | 1423 | case Binteractive_p: /* Obsolete. */ |
| 1416 | PUSH (Finteractive_p ()); | 1424 | PUSH (Finteractive_p ()); |
| 1417 | break; | 1425 | break; |
| 1418 | 1426 | ||