GNU bug report logs - #33498
26.1; Unable to delete minibuffer-only+child frames

Previous Next

Package: emacs;

Reported by: Andreas Politz <politza <at> hochschule-trier.de>

Date: Sun, 25 Nov 2018 11:45:01 UTC

Severity: normal

Tags: fixed

Found in version 26.1

Fixed in version 27.1

Done: martin rudalics <rudalics <at> gmx.at>

Bug is archived. No further changes may be made.

Full log


Message #35 received at 33498 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 33498 <at> debbugs.gnu.org
Subject: Re: bug#33498: 26.1; Unable to delete minibuffer-only+child frames
Date: Thu, 07 Mar 2019 09:28:51 +0100
> Unfortunately the fix broke builds configured with
> --enable-gcc-warnings, as GCC complains about the use of an
> uninitialized variable that appears to be a typo in the fix. I installed
> the attached patch to unbreak the build; please check it to make sure
> that I understood the intent of the fix correctly.

Many thanks for catching this, your fix is correct.  Unfortunately,
it's impossible for me to trigger a crash in a running Emacs since
frame1 apparently gets assigned the "correct" value in one of the
loops executed before.  Using these initial settings

(setq initial-frame-alist '((minibuffer . child-frame)))
(setq default-frame-alist '((minibuffer)))

and subsequently evaluating

;; Assign initial and minibuffer frame.
(setq initial-frame (selected-frame))
(setq minibuffer-frame (window-frame (minibuffer-window)))
;; Make a new frame whose minibuffer window should be on
;; minibuffer-frame.
(make-frame)
;; Make minibuffer frame invisible.
(make-frame-invisible minibuffer-frame)
;; Delete initial frame.
(delete-frame initial-frame)

the last one could trigger a crash but minibuffer-frame just becomes
visible as expected because frame1 _is_ minibuffer_child_frame there.

> It's a good idea to use './configure --enable-gcc-warnings' when making
> changes to the C code in Emacs, as GCC is reasonably good at catching
> typos like this, and typically does not generate too many false alarms.

I build with

Configured using:
 'configure --prefix=/c/emacs-git/trunk/dbg --with-gnutls=no
 --without-pop --enable-checking=yes --enable-gcc-warnings=warn-only
 --enable-check-lisp-object-type=warn-only 'CFLAGS=-O0 -g3
 -Wno-logical-op''

ever since but it seems that gcc 4.8.1 is simply too old to catch such
subtle bugs (just verified by building with the buggy version again).

Thanks again for the fix, martin




This bug report was last modified 6 years and 89 days ago.

Previous Next


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