diff options
| author | Stefan Monnier | 2011-02-21 15:12:44 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2011-02-21 15:12:44 -0500 |
| commit | 3e21b6a72b87787e2327513a44623b250054f77d (patch) | |
| tree | 26831a9b700810d4f9cebe90afe2a090ae865604 /src/alloc.c | |
| parent | e0f57e65692ed73a86926f737388b60faec92767 (diff) | |
| download | emacs-3e21b6a72b87787e2327513a44623b250054f77d.tar.gz emacs-3e21b6a72b87787e2327513a44623b250054f77d.zip | |
Use offsets relative to top rather than bottom for stack refs
* lisp/emacs-lisp/byte-opt.el (byte-compile-side-effect-and-error-free-ops):
Remove interactive-p.
(byte-optimize-lapcode): Update optimizations now that stack-refs are
relative to the top rather than to the bottom.
* lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode):
Turn stack-ref-0 into dup.
(byte-compile-form): Don't indirect-function since it can signal
errors.
(byte-compile-stack-ref, byte-compile-stack-set): Adjust to stack-refs
being relative to top rather than to bottom in the byte-code.
(with-output-to-temp-buffer): Remove.
(byte-compile-with-output-to-temp-buffer): Remove.
* lisp/emacs-lisp/cconv.el: Use lexical-binding.
(cconv--lookup-let): Rename from cconv-lookup-let.
(cconv-closure-convert-rec): Fix handling of captured+mutated
arguments in defun/defmacro.
* lisp/emacs-lisp/eieio-comp.el (eieio-byte-compile-file-form-defmethod):
Rename from byte-compile-file-form-defmethod.
Don't byte-compile-lambda.
(eieio-byte-compile-defmethod-param-convert): Rename from
byte-compile-defmethod-param-convert.
* lisp/emacs-lisp/eieio.el (eieio-defgeneric-form-primary-only-one):
Call byte-compile rather than byte-compile-lambda.
* src/alloc.c (Fgarbage_collect): Don't mark the byte-stack redundantly.
* src/bytecode.c (exec_byte_code): Change stack_ref and stack_set to use
offsets relative to top rather than to bottom.
* lisp/subr.el (with-output-to-temp-buffer): New macro.
* lisp/simple.el (count-words-region): Don't use interactive-p.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/alloc.c b/src/alloc.c index 36c849418f3..4c29ce0b4ec 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -5029,9 +5029,9 @@ returns nil, because real GC can't be done. */) | |||
| 5029 | for (i = 0; i < tail->nvars; i++) | 5029 | for (i = 0; i < tail->nvars; i++) |
| 5030 | mark_object (tail->var[i]); | 5030 | mark_object (tail->var[i]); |
| 5031 | } | 5031 | } |
| 5032 | mark_byte_stack (); | ||
| 5032 | #endif | 5033 | #endif |
| 5033 | 5034 | ||
| 5034 | mark_byte_stack (); | ||
| 5035 | for (catch = catchlist; catch; catch = catch->next) | 5035 | for (catch = catchlist; catch; catch = catch->next) |
| 5036 | { | 5036 | { |
| 5037 | mark_object (catch->tag); | 5037 | mark_object (catch->tag); |