Mercurial > hg > xemacs-beta
changeset 5568:b039c0f018b8
Error if byte-compiling a form hasn't wrapped byte-compile-inbuffer.
lisp/ChangeLog addition:
2011-09-09 Aidan Kehoe <kehoea@parhasard.net>
* bytecomp.el (byte-compile-from-buffer):
If compiling a form has changed the current buffer (that is, some
eval-when-compile form hasn't done save-excursion when
appropriate), error and exit; we can't guarantee we'll give useful
code in that context. See
http://mid.gmane.org/20110909110831.GD2875@acm.acm and related
discussion.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Fri, 09 Sep 2011 22:50:31 +0100 |
parents | 3bc58dc9d688 |
children | d19b6e3bdf91 |
files | lisp/ChangeLog lisp/bytecomp.el |
diffstat | 2 files changed, 15 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Wed Sep 07 21:21:36 2011 +0100 +++ b/lisp/ChangeLog Fri Sep 09 22:50:31 2011 +0100 @@ -1,3 +1,13 @@ +2011-09-09 Aidan Kehoe <kehoea@parhasard.net> + + * bytecomp.el (byte-compile-from-buffer): + If compiling a form has changed the current buffer (that is, some + eval-when-compile form hasn't done save-excursion when + appropriate), error and exit; we can't guarantee we'll give useful + code in that context. See + http://mid.gmane.org/20110909110831.GD2875@acm.acm and related + discussion. + 2011-09-07 Aidan Kehoe <kehoea@parhasard.net> * simple.el (transpose-subr):
--- a/lisp/bytecomp.el Wed Sep 07 21:21:36 2011 +0100 +++ b/lisp/bytecomp.el Fri Sep 09 22:50:31 2011 +0100 @@ -1864,7 +1864,11 @@ (looking-at ";")) (forward-line 1)) (not (eobp))) - (byte-compile-file-form (read byte-compile-inbuffer))) + (byte-compile-file-form (read byte-compile-inbuffer)) + (or (eq byte-compile-inbuffer (current-buffer)) + (error 'invalid-state + "byte compiling didn't save-excursion appropriately" + (current-buffer)))) ;; Compile pending forms at end of file. (byte-compile-flush-pending)