Bug in truncate-command-history-for-gc / pre-gc-hook in XEmacs-21.4.x
Hrvoje Niksic
hniksic at xemacs.org
Mon Jun 28 03:09:15 EDT 2004
Nix <nix at esperi.org.uk> writes:
> In a number of places up the call stack in emacs-cl, most notably in
> cl-eval.el's `eval-let' and `MULTIPLE-VALUE-CALL', we make a local
> variable called `values' and fill it with, well, not exactly what
> `truncate-command-history-for-gc' is expecting to find in there. Then,
> glory be to dynamic scope, we happen to GC down there, the hook fires,
> `truncate-command-history-for-gc' runs, and *boom*.
Yikes. All hail dynamic scope.
> Obviously, a temporary fix is for emacs-cl to stop using `values' as
> a variable name; but that's not an ideal long-term fix. :)
And besides, any poor code that uses `command-history' as a local
variable is also suspect. :-)
I think your fix is correct; you should perhaps add a comment
explaining why we're going through the hoop of enqueuing an eval
event.
More information about the XEmacs-Beta
mailing list