emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master c4d34d2: CC Mode: Enhance C++ Mode raw strings to multi-line


From: Basil L. Contovounesios
Subject: Re: master c4d34d2: CC Mode: Enhance C++ Mode raw strings to multi-line strings for any language
Date: Fri, 20 Aug 2021 23:43:30 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Alan Mackenzie [2021-08-20 21:20 +0000] wrote:

> On Fri, Aug 20, 2021 at 10:48:04 +0000, Alan Mackenzie wrote:
>
>> The problem is a bug in c-point-syntax.  There, there is
>>   (i) an invocation of c-save-buffer-state, which binds buffer-undo-list
>>   to t, followed by
>>   (ii) an invocation of c-tentative-buffer-changes, which pushes nil onto
>>   buffer-undo-list (simulating an undo group) giving (nil t).
>>   (iii) A { is typed into the buffer, giving buffer-undo-list now as
>>   something like ((5128 . 5129) nil t).
>> At this point garbage collection occurs.  This strips the tail of
>> buffer-undo-list, leaving ((5128 . 5129)).
>>   (iv) In c-tnt-chng-cleanup, primitive-undo is repeated infinitely,
>>   since buffer-undo-list will never become the expected value (nil t).
>
>> The problem would appear to be the invalid value ((5128 . 5129) nil t) in
>> buffer-undo-list.
>
>> I'll see what I can do about this tonight.
>
> I've just committed a patch to master which I think fixes the problem.

Thanks!  That indeed fixes the hang here.

If it stops the hangs from happening on Hydra as well, then the relevant
electric-tests will no longer need to be skipped there.

I see only one minor issue with the patch: it introduces a use of the
macro c-benign-error before its definition, which gives rise to a
byte-compiler warning.  I would have moved the macro's definition
myself, but I see the file is organised in a particular way, so I leave
that to you.

Thanks,

-- 
Basil



reply via email to

[Prev in Thread] Current Thread [Next in Thread]