emacs-devel
[Top][All Lists]
Advanced

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

Re: 29.0.50 master freeze on macOS


From: Eli Zaretskii
Subject: Re: 29.0.50 master freeze on macOS
Date: Tue, 19 Jul 2022 19:02:46 +0300

> From: Alexander Adolf <alexander.adolf@condition-alpha.com>
> Cc: emacs-devel@gnu.org
> Date: Tue, 19 Jul 2022 17:27:14 +0200
> 
> It loops in face_inherited_attr(). Here is the call stack:
> [...]
> In face_inherited_attr(), variable values were:
> 
> w     window *        NULL    
> f     frame * NULL    
> attrs Lisp_Object *   NULL    
> attr_idx      lface_attribute_index   LFACE_EXTEND_INDEX
> named_merge_points    named_merge_point *     0x7ffeee3e9018  
> 0x00007ffeee3e9018
> inherited_attrs       Lisp_Object [20]        
> attr_val      Lisp_Object     0xf3f0  0x000000000000f3f0
> 
> Inside the while() loop, the if (CONSP (parent_face)) fails, and it
> executes the else branch. From there, it calls 
> 
> get_lface_attributes (struct window *w,
>                       struct frame *f, Lisp_Object face_name,
>                     Lisp_Object attrs[LFACE_VECTOR_SIZE], bool signal_p,
>                     struct named_merge_point *named_merge_points)
> 
> which executes the “default case, no remapping” path.
> 
> Interestingly, the window and frame pointers are NULL in the context of
> face_inherited_attr() only. I.e. in both the function that calls it
> (merge_named_face()), and in the function called by it
> (get_lface_attributes()), the pointers have the same, non-NULL value.
> 
> Hope this helps? If you want me to look into more specific things next
> time it happens, please don't hesitate to drop me a note.

This helps, thanks.  But since the loop is in that place, it is very
important to see the definition of the face which causes this.

Specifically:

  . what is the value of face_name argument to merge_named_face that
    calls face_inherited_attr? it should be a symbol.
  . what are the attributes in the attrs[] argument to
    face_inherited_attr? this is a vector of Lisp objects, and the
    meaning of each component can be seen in the lface_attribute_index
    enumeration

Thanks.



reply via email to

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