Subject: bug#18140: [PATCH] macros.c: CHECK_VECTOR_OR_STRING invokes wrong_type_argument for Qnil instead of return 0

From: Jan Chaloupka <[email-masked]>
Date: Tue, 29 Jul 2014 10:55:20 +0200

On 07/29/2014 10:37 AM, Andreas Schwab wrote:
> Jan Chaloupka <[email-masked]> writes:
>
>> Yes, for garbage collector. However, Vlast_kbd_macro will continue being
>> Qnil.
> Why is that a problem?  That is the default value.
So is it correct if append and Vlast_kbd_macro are both Qnil resulting 
in CHECK_VECTOR_OR_STRING fail?
The bug from BZ is use-case where emacs crashes at startup, loading 
.emacs.desktop file.
>> In function Fstart_kbd_macro (macros.c), Vlast_kbd_macro of current_kboard
>> is
>> Qnil for the first invocation. If NILP (append) is false
>> CHECK_VECTOR_OR_STRING fails (invocation
>> of wrong_type_argument resulting in emacs_abort).
> Where does it call emacs_abort?
Because Vlast_kbd_macro is not VECTOR nor STRING
>> However, it has to pass.
> Why?
My first question in this response.
> Andreas.