From d64172dc5e6bd9540d4d5f57a5e7aa37324e546d Mon Sep 17 00:00:00 2001
From: Huw Davies <huw@codeweavers.com>
Date: Thu, 15 Sep 2005 09:29:37 +0000
Subject: [PATCH] Remember to remove a child font from the child font list.

---
 dlls/gdi/freetype.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/dlls/gdi/freetype.c b/dlls/gdi/freetype.c
index ca89616b16c..eb469286783 100644
--- a/dlls/gdi/freetype.c
+++ b/dlls/gdi/freetype.c
@@ -2377,6 +2377,18 @@ BOOL WineEngDestroyFontInstance(HFONT handle)
     struct list *font_elem_ptr, *hfontlist_elem_ptr;
     int i = 0;
 
+    LIST_FOR_EACH_ENTRY(gdiFont, &child_font_list, struct tagGdiFont, entry)
+    {
+        struct list *first_hfont = list_head(&gdiFont->hfontlist);
+        hflist = LIST_ENTRY(first_hfont, HFONTLIST, entry);
+        if(hflist->hfont == handle)
+        {
+            TRACE("removing child font %p from child list\n", gdiFont);
+            list_remove(&gdiFont->entry);
+            return TRUE;
+        }
+    }
+
     TRACE("destroying hfont=%p\n", handle);
     if(TRACE_ON(font))
 	dump_gdi_font_list();
-- 
GitLab