GNU bug report logs - #7728
24.0.50; GDB backtrace from abort

Previous Next

Package: emacs;

Reported by: "Drew Adams" <drew.adams <at> oracle.com>

Date: Fri, 24 Dec 2010 16:51:02 UTC

Severity: normal

Found in version 24.0.50

Done: Chong Yidong <cyd <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: "Drew Adams" <drew.adams <at> oracle.com>
Cc: 'Eli Zaretskii' <eliz <at> gnu.org>, 7728 <at> debbugs.gnu.org
Subject: bug#7728: 24.0.50; GDB backtrace from abort
Date: Thu, 13 Jan 2011 16:24:27 -0500
>> > And just what code do you suggest for going off to do something on
>> > a different frame and returning?  AFAIK we do not have
>> > a `save-frame-excursion'.
>> Hmm... let's see... how 'bout `with-selected-frame'?  ;-)

> Does not exist before Emacs 23, for one thing.  My code needs to work
> with multiple Emacs versions.  And please do not suggest that I add
> such macros to older versions just to be able to work around a newly
> introduced Emacs bug.  And please do not suggest that I split the code
> to use the macro only for Emacs 23.3+ since this is a new bug
> (regression).

I'm just telling you what's the right way to do it.

> Sorry, but I have never, ever suffered from "those things".

Then either you were lucky to only use the code after I fixed it, or you
don't know what I'm talking about.  The typical misuse looks like:

  (save-window-excursion
    (let ((b (find-file "foo")))
      blabla))

instead of

  (let ((b (find-file-noselect "foo")))
    blabla)

I.e. call code that may modify the window-layout whereas what the caller
wants is something else, so he uses save-window-excursion to "undo"
those changes.  But of course, with pop-up-frames and friends, in
many/most cases the code may not only modify the window-layout but also
create a new frame, which can't really be undone because the creation
itself is already user-visible, and save-window-excursion won't even try
to undo it anyway.
    
> And `save-window-excursion' _has_ always been used for this kind of
> thing in Emacs AFAIK - revisionism notwithstanding.

I didn't know that.  Can you point at some examples?

> In this case the `save-window-excursion' should amount to a no-op in
> the end.  The source and target window and frame need not be the same
> in general, but they are the same in the crashes I reported.  If Emacs
> cannot save and restore without crashing in this case then Houston you
> really have a problem.

You know I always consider any crash as a bug in the C code, even if
it's triggered by Elisp code.


        Stefan




This bug report was last modified 12 years and 357 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.