* Re: master 2a7f01aa38: Fix initialization of module functions
[not found] ` <20221110105556.B16E8C0E4C9@vcs2.savannah.gnu.org>
@ 2022-11-10 14:06 ` Stefan Monnier
2022-11-10 15:23 ` Eli Zaretskii
0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2022-11-10 14:06 UTC (permalink / raw)
To: emacs-devel; +Cc: Eli Zaretskii
> 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.
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: master 2a7f01aa38: Fix initialization of module functions
2022-11-10 14:06 ` master 2a7f01aa38: Fix initialization of module functions Stefan Monnier
@ 2022-11-10 15:23 ` Eli Zaretskii
2022-11-10 17:44 ` Stefan Monnier
0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2022-11-10 15:23 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Eli Zaretskii <eliz@gnu.org>
> Date: Thu, 10 Nov 2022 09:06:35 -0500
>
> > 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.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: master 2a7f01aa38: Fix initialization of module functions
2022-11-10 15:23 ` Eli Zaretskii
@ 2022-11-10 17:44 ` Stefan Monnier
2022-11-10 18:13 ` Eli Zaretskii
0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2022-11-10 17:44 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
Eli Zaretskii [2022-11-10 17:23:52] wrote:
>> From: Stefan Monnier <monnier@iro.umontreal.ca>
>> Cc: Eli Zaretskii <eliz@gnu.org>
>> Date: Thu, 10 Nov 2022 09:06:35 -0500
>>
>> > 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.
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: master 2a7f01aa38: Fix initialization of module functions
2022-11-10 17:44 ` Stefan Monnier
@ 2022-11-10 18:13 ` Eli Zaretskii
2022-11-10 18:32 ` Stefan Monnier
0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2022-11-10 18:13 UTC (permalink / raw)
To: Stefan Monnier; +Cc: emacs-devel
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org
> Date: Thu, 10 Nov 2022 12:44:56 -0500
>
> Eli Zaretskii [2022-11-10 17:23:52] wrote:
>
> >> > 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?
Anyway, feel free to add whatever comment you want, you don't need to
convince me (in this case).
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: master 2a7f01aa38: Fix initialization of module functions
2022-11-10 18:13 ` Eli Zaretskii
@ 2022-11-10 18:32 ` Stefan Monnier
0 siblings, 0 replies; 5+ messages in thread
From: Stefan Monnier @ 2022-11-10 18:32 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: emacs-devel
>> >> > 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
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-11-10 18:32 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <166807775643.29181.14745596143667535171@vcs2.savannah.gnu.org>
[not found] ` <20221110105556.B16E8C0E4C9@vcs2.savannah.gnu.org>
2022-11-10 14:06 ` master 2a7f01aa38: Fix initialization of module functions Stefan Monnier
2022-11-10 15:23 ` Eli Zaretskii
2022-11-10 17:44 ` Stefan Monnier
2022-11-10 18:13 ` Eli Zaretskii
2022-11-10 18:32 ` Stefan Monnier
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).