Subject: Re: bug#5365: 23.1.91; Wrong type argument: keymapp, ("DEAD" . 35215396)

From: Stefan Monnier <[email-masked]>
Date: Wed, 13 Jan 2010 13:57:35 -0500

>> 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;
>         ...
>       }

Indeed, that looks risky.  Why don't we add this new kboard to the
all_kboards list before calling Qvendor_specific_keysyms?

        Stefan