GNU bug report logs -
#47244
28.0.50; SIGSEGV in long-runnning Emacs
Previous Next
Reported by: Michael Welsh Duggan <md5i <at> md5i.com>
Date: Thu, 18 Mar 2021 15:40:01 UTC
Severity: normal
Found in version 28.0.50
Done: Michael Welsh Duggan <mwd <at> md5i.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
> Cc: schwab <at> linux-m68k.org, mwd <at> md5i.com, 47244 <at> debbugs.gnu.org, mwd <at> cert.org
> From: martin rudalics <rudalics <at> gmx.at>
> Date: Fri, 19 Mar 2021 10:18:33 +0100
>
> > Sorry, I don't understand: when kill-buffer kills the current buffer,
> > it replaces it with another one. Are you saying we have a way of
> > killing buffers that bypasses kill-buffer? if so, can you describe how
> > that can be done?
> >
> > Or what else am I missing?
>
> Redisplay occasionally does things like
>
> saved_current_buffer = current_buffer;
> current_buffer = XBUFFER (w->contents);
> ...
> current_buffer = saved_current_buffer;
It does? where? We are talking about redisplay_internal here (because
that's where the segfault happened), not about redisplay_window and
its subroutines. redisplay_internal generally doesn't need to be
bothered with the current buffer, it only does so once, in the
optimization it implements. And in that code, I see no paradigm like
what you show. Am I missing something?
> What if ... killed saved_current_buffer?
I don't see how that could happen in redisplay_internal.
Maybe you had redisplay_window in mind. It does
set_buffer_internal_1 (XBUFFER (w->contents));
If you imply that a window's buffer could be killed (which I still
don't understand how can happen, given what kill-buffer does), then I
think set_buffer_internal_1 would detect that. If not, we could test
that explicitly, but then the question would be: what to do if we
detect that the buffer is indeed killed?
This bug report was last modified 4 years and 28 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.