[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