[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-memb
From: |
David Kastrup |
Subject: |
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-member |
Date: |
Tue, 13 Oct 2015 15:41:29 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux) |
Stefan Monnier <address@hidden> writes:
>>> QUIT could call some Lisp.
>> Sure, but it would not return.
>
> Actually, QUIT can run Elisp and return (the `quit' signal is the only
> signal that can do that).
I have my doubt this could be the cause of the problem: between CONSP
and XCDR the value has to be kept somewhere: in a register or on the
stack. If Lisp code were running garbage collection in between, this
cons cell would be protected due to its presence in the stack frame.
The only plausible explanation I'd have is that CONSP happens to be true
(due to the set bits in the value) but the value is garbage anyway and
points nowhere sane. In that case, any intermittent QUIT call would be
a red herring: the XCDR would bork on the value anyway.
--
David Kastrup
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-member, Andreas Schwab, 2015/10/15
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-member, David Kastrup, 2015/10/15
Re: [Emacs-diffs] master 8ba156f: Attempt to avoid crashes in plist-member, Eli Zaretskii, 2015/10/13