Mercurial > hg > xemacs-beta
changeset 5663:0df4d95bd98a
Fetch its bytecode before unfolding a compiled function, byte-optimize.el
lisp/ChangeLog addition:
2012-05-12 Aidan Kehoe <kehoea@parhasard.net>
* byte-optimize.el (byte-compile-unfold-lambda):
Fetch the bytecode before unfolding a compiled function, its body
may have been compiled lazily thanks to
byte-compile-dynamic. Thank you Mats Lidell and the package
smoketest!
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sat, 12 May 2012 15:03:24 +0100 |
parents | bed39edf91ba |
children | 00fd55d635fb |
files | lisp/ChangeLog lisp/byte-optimize.el |
diffstat | 2 files changed, 14 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Thu May 10 13:53:06 2012 +0100 +++ b/lisp/ChangeLog Sat May 12 15:03:24 2012 +0100 @@ -1,3 +1,11 @@ +2012-05-12 Aidan Kehoe <kehoea@parhasard.net> + + * byte-optimize.el (byte-compile-unfold-lambda): + Fetch the bytecode before unfolding a compiled function, its body + may have been compiled lazily thanks to + byte-compile-dynamic. Thank you Mats Lidell and the package + smoketest! + 2012-05-10 Aidan Kehoe <kehoea@parhasard.net> * mule/mule-category.el (word-combining-categories):
--- a/lisp/byte-optimize.el Thu May 10 13:53:06 2012 +0100 +++ b/lisp/byte-optimize.el Sat May 12 15:03:24 2012 +0100 @@ -296,11 +296,12 @@ (let ((lambda (car form)) (values (cdr form))) (if (compiled-function-p lambda) - (setq lambda (list 'lambda (compiled-function-arglist lambda) - (list 'byte-code - (compiled-function-instructions lambda) - (compiled-function-constants lambda) - (compiled-function-stack-depth lambda))))) + (setq lambda (fetch-bytecode lambda) + lambda (list 'lambda (compiled-function-arglist lambda) + (list 'byte-code + (compiled-function-instructions lambda) + (compiled-function-constants lambda) + (compiled-function-stack-depth lambda))))) (let ((arglist (nth 1 lambda)) (body (cdr (cdr lambda))) optionalp restp