[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#23386: Segfault when messing with font-backend
From: |
Eli Zaretskii |
Subject: |
bug#23386: Segfault when messing with font-backend |
Date: |
Tue, 12 Jul 2016 20:45:30 +0300 |
> Cc: 23386@debbugs.gnu.org
> From: Dmitry Antipov <dmantipov@yandex.ru>
> Date: Tue, 12 Jul 2016 18:20:41 +0300
>
> > But it doesn't do what the user asked for.
> >
> > I don't see why it would be meaningless to evict a backend and start
> > using another one, if all it takes is re-open a bunch of fonts.
>
> OK, the following patch basically works for me (not tested too much, BTW).
Thanks.
> --- 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?