GNU bug report logs - #5365
23.1.91; Wrong type argument: keymapp, ("DEAD" . 35215396)

Previous Next

Package: emacs;

Reported by: Sven Joachim <svenjoac <at> gmx.de>

Date: Tue, 12 Jan 2010 14:59:01 UTC

Severity: serious

Merged with 5810

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

Full log


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

From: Sven Joachim <svenjoac <at> gmx.de>
To: Chong Yidong <cyd <at> stupidchicken.com>
Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>, 5365 <at> debbugs.gnu.org
Subject: Re: bug#5365: 23.1.91;
	Wrong type argument: keymapp, ("DEAD" . 35215396)
Date: Wed, 13 Jan 2010 20:13:36 +0100
On 2010-01-13 18:27 +0100, Chong Yidong wrote:

> Chong Yidong <cyd <at> stupidchicken.com> writes:
>
>> Even if that's the case, I'm not sure why Vlocal_function_key_map is
>> getting garbage-collected, tho.
>
> OK, I see one place where this could happen.  In xterm.c:10207:
>
>     terminal->kboard = (KBOARD *) xmalloc (sizeof (KBOARD));
>     ...
>     if (!EQ (XSYMBOL (Qvendor_specific_keysyms)->function, Qunbound))
>       {
>         char *vendor = ServerVendor (dpy);
>         /* Temporarily hide the partially initialized terminal */
>         terminal_list = terminal->next_terminal;
>         UNBLOCK_INPUT;
>         terminal->kboard->Vsystem_key_alist
>           = call1 (Qvendor_specific_keysyms,
>                    vendor ? build_string (vendor) : empty_unibyte_string);
>         BLOCK_INPUT;
>         ...
>       }
>
>     terminal->kboard->next_kboard = all_kboards;
>     all_kboards = terminal->kboard;
>
> It's possible that garbage-collection occurs during the call1, when the
> keyboard has not yet been put on the all_kboards linked list.  In that
> case, it will not be protected from garbage collection.
>
> Sven, does the following patch fix the bug?

Apparently, at least I can no longer reproduce the bug.

Sven




This bug report was last modified 15 years and 110 days ago.

Previous Next


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