Subject: Re: bug#75521: scratch/igc: Delete unused macro DEFVAR_LISP_NOPROX

From: Eli Zaretskii <[email-masked]>
Date: Mon, 13 Jan 2025 18:41:32 +0200

> Date: Mon, 13 Jan 2025 14:16:04 +0000
> From: Pip Cet <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> "Eli Zaretskii" <[email-masked]> writes:
> 
> >> But then font_style_table is sometimes modified so it points to
> >> (i.e. contains as its element) a new vector, and I don't see how
> >> Vfont_weight_table is protected then.
> >
> > Modified where?
> 
> font_style_to_value:
> 
>       if (! noerror)
> 	return -1;
>       eassert (len < 255);
>       elt = make_vector (2, make_fixnum (100));
>       ASET (elt, 1, val);
>       ASET (font_style_table, prop - FONT_WEIGHT_INDEX,
> 	    CALLN (Fvconcat, table, make_vector (1, elt)));
>       return (100 << 8) | (i << 4);

OK, but the values gets plugged int font_style_table, right?  And my
reading of mark_object_root_visitor is that it marks its argument
recursively, so any object reachable from font_style_table should also
be protected?  Am I wrong?