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

From: Stefan Monnier <[email-masked]>
Date: Fri, 15 Jan 2010 12:52:48 -0500

>>>> Indeed, that looks risky.  Why don't we add this new kboard to the
>>>> all_kboards list before calling Qvendor_specific_keysyms?
>>> We'd still have to protect the terminal object.
>> 
>> Why?  It's a normal Lisp object, so it should be protected by the usual
>> GCPRO or stack marking, no?
>> [ Oddly enough, mark_terminal doesn't traverse the terminal's kboard.  ]

> But the terminal object is removed from the terminal list before the
> call1 (this was before my latest patch):

But that's OK because the `terminal' variable is still on the stack so
the stack marking should see it and mark the corresponding terminal,
like any other Lisp object.

We should add a corresponding GCPRO, to make sure it also works without
conservative stack marking.

        Stefan