Mercurial > hg > xemacs-beta
diff lisp/bytecomp.el @ 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 | 4654c01af32b |
children | f0f1fd0d8486 |
line wrap: on
line diff
--- 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)