GNU bug report logs - #37415
Asserting failure setting frame parameters to non-fixnum values in early-init.el

Previous Next

Package: emacs;

Reported by: Juanma Barranquero <lekktu <at> gmail.com>

Date: Sun, 15 Sep 2019 22:35:02 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


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

From: Juanma Barranquero <lekktu <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: martin rudalics <rudalics <at> gmx.at>, 37415 <at> debbugs.gnu.org
Subject: Re: bug#37415: Asserting failure setting frame parameters to
 non-fixnum values in early-init.el
Date: Sun, 22 Sep 2019 07:54:07 +0200
[Message part 1 (text/plain, inline)]
Curiouser and curiouser.

With no init.el or early-init.el:

   emacs --eval "(let ((default-frame-alist '((left . 1000))))
(make-frame-command))"

works (it creates an additional frame, displaced to the right).

   emacs --eval "(let ((default-frame-alist '((left . (- 0)))))
(make-frame-command))"

lisp.h:1231: Emacs fatal error: assertion failed: FIXNUMP (a)

Or, equivalently,

  emacs -Q --no-site-file

  M-: (let ((default-frame-alist '((left . (- 0))))) (make-frame-command))
<RET>

so the bit about early-init.el seems like a red herring.



On Sat, Sep 21, 2019 at 2:27 PM Eli Zaretskii <eliz <at> gnu.org> wrote:

> > From: Juanma Barranquero <lekktu <at> gmail.com>
> > Date: Sat, 21 Sep 2019 12:02:51 +0200
> > Cc: martin rudalics <rudalics <at> gmx.at>, 37415 <at> debbugs.gnu.org
> >
> > Before 572fe798cd0a00ad4a9050a7962cf8e8fbcc209b (from 2014-09-30), the
> computation of left and top
> > was done in w32_createwindow:
> >
> >       /* When called with RES_TYPE_NUMBER, w32_get_arg will return zero
> >         for anything that is not a number and is not Qunbound.  */
> >       left = x_get_arg (dpyinfo, Qnil, Qleft, "left", "Left",
> RES_TYPE_NUMBER);
> >       top = x_get_arg (dpyinfo, Qnil, Qtop, "top", "Top",
> RES_TYPE_NUMBER);
> >
> > and anything not a number was turned to 0.
> >
> > In that commit you moved the code to my_create_window and used XINT:
> >
> >  +  /* When called with RES_TYPE_NUMBER, x_get_arg will return zero for
> >  +     anything that is not a number and is not Qunbound.  */
> >  +  left = x_get_arg (dpyinfo, Qnil, Qleft, "left", "Left",
> RES_TYPE_NUMBER);
> >  +  top = x_get_arg (dpyinfo, Qnil, Qtop, "top", "Top", RES_TYPE_NUMBER);
> >  +  if (EQ (left, Qunbound))
> >  +    coords[0] = CW_USEDEFAULT;
> >  +  else
> >  +    coords[0] = XINT (left);
> >  +  if (EQ (top, Qunbound))
> >  +    coords[1] = CW_USEDEFAULT;
> >  +  else
> >  +    coords[1] = XINT (top);
> >  +
>
> Yes, but contrary to the comment, in the case in point we don't get
> zero from x_get_arg.  Which is why I asked all those questions.
>
[Message part 2 (text/html, inline)]

This bug report was last modified 5 years and 246 days ago.

Previous Next


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