emacs-devel
[Top][All Lists]
Advanced

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

Re: MPS: staticpro everything


From: Gerd Möllmann
Subject: Re: MPS: staticpro everything
Date: Wed, 01 May 2024 15:48:25 +0200
User-agent: Gnus/5.13 (Gnus v5.13)

Eli Zaretskii <eliz@gnu.org> writes:

>> From: Helmut Eller <eller.helmut@gmail.com>
>> Cc: gerd.moellmann@gmail.com,  emacs-devel@gnu.org
>> Date: Wed, 01 May 2024 08:53:31 +0200
>> 
>> On Tue, Apr 30 2024, Eli Zaretskii wrote:
>> 
>> >> These probably need special tracing code:
>> >> 
>> >> bidi.c: bidi_cache
>> >
>> > Can you tell why?  The bidi cache is allocated using xmalloc, and has
>> > a single Lisp string object in each of its slots.  The Lisp string
>> > doesn't need any special handling, AFAIU, or does it?
>> 
>> The struct bidi_it has a pointer to a window.
>
> 'struct bidi_it' is a member of 'struct it', the iterator object we
> use to perform display layout of windows.  'struct it' includes
> pointers to the window being displayed and also to the frame of that
> window:
>
>   struct it
>   {
>     /* The window in which we iterate over current_buffer (or a string).  */
>     Lisp_Object window;
>     struct window *w;
>
>     /* The window's frame.  */
>     struct frame *f;
>
> It also has a few other pointers.  And yet, you didn't include 'struct
> it' in your list, and I wonder why the difference?  (The pointer to
> the window is the same pointer that is copied in 'struct bidi_it'.)

I think struct it always lives on the stack. In that case we don't need
to do anything (see my other mail).



reply via email to

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