emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master 2a7f01aa38: Fix initialization of module functions


From: Stefan Monnier
Subject: Re: master 2a7f01aa38: Fix initialization of module functions
Date: Thu, 10 Nov 2022 13:32:47 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

>> >> >  allocate_module_function (void)
>> >> >  {
>> >> >    return ALLOCATE_PSEUDOVECTOR (struct Lisp_Module_Function,
>> >> > -                                interactive_form, 
>> >> > PVEC_MODULE_FUNCTION);
>> >> > +                                command_modes, PVEC_MODULE_FUNCTION);
>> >> >  }
>> >> >  
>> >> >  #define XSET_MODULE_FUNCTION(var, ptr) \
>> >> 
>> >> Usually we accompany that with a comment in the struct stating "this
>> >> is the last GC-tracked field" or something like that.
>> >
>> > There's already such a comment, a few lines above.
>> 
>> The comment doesn't say which one is the last tracked field.
>
> ??? That's basic C, or what am I missing?

The commit 2a7f01aa38 fixes a bug introduced by commit 58e0c8ee86e2
which did (among other things:)

    @@ -548,7 +548,7 @@
     {
       union vectorlike_header header;
     
       /* Fields traced by GC; these must come first.  */
    -  Lisp_Object documentation, interactive_form;
    +  Lisp_Object documentation, interactive_form, command_modes;
     
       /* Fields ignored by GC.  */

so clearly the comment was not sufficiently clear for Lars to notice
that adding a field after `interactive_form` would introduce a bug.


        Stefan




reply via email to

[Prev in Thread] Current Thread [Next in Thread]