Subject: bug#23386: Segfault when messing with font-backend

From: Dmitry Antipov <[email-masked]>
Date: Tue, 12 Jul 2016 20:58:05 +0300

On 07/12/2016 08:45 PM, Eli Zaretskii wrote:

>> --- a/src/frame.c
>> +++ b/src/frame.c
>> @@ -3712,7 +3712,11 @@ x_set_font_backend (struct frame *f, Lisp_Object new_value, Lisp_Object old_valu
>>      return;
>>
>>    if (FRAME_FONT (f))
>> -    free_all_realized_faces (Qnil);
>> +    {
>> +      Lisp_Object frame;
>> +      XSETFRAME (frame, f);
>> +      free_all_realized_faces (frame);
>> +    }
>
> Since free_all_realized_faces with a nil argument will free faces on
> all frames, can you tell why this hunk was needed?

Hmm...hopefully there are no reasons to disturb other frames when we change
font backend(s) on the only one.

Dmitry