diff options
Diffstat (limited to 'pango/pangowin32-fontmap.c')
-rw-r--r-- | pango/pangowin32-fontmap.c | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/pango/pangowin32-fontmap.c b/pango/pangowin32-fontmap.c index 37cb279c..171883fa 100644 --- a/pango/pangowin32-fontmap.c +++ b/pango/pangowin32-fontmap.c @@ -88,6 +88,8 @@ static void pango_win32_fontmap_cache_clear (PangoWin32FontMap static void pango_win32_insert_font (PangoWin32FontMap *fontmap, LOGFONT *lfp); +static PangoWin32FontMap *default_fontmap = NULL; + G_DEFINE_TYPE (PangoWin32FontMap, pango_win32_font_map, PANGO_TYPE_FONT_MAP) /* A hash function for LOGFONTs that takes into consideration only @@ -177,7 +179,6 @@ pango_win32_font_map_init (PangoWin32FontMap *win32fontmap) (LPARAM)win32fontmap, 0); win32fontmap->resolution = (PANGO_SCALE / (double) GetDeviceCaps (pango_win32_hdc, LOGPIXELSY)) * 72.0; - } static void @@ -199,8 +200,6 @@ pango_win32_font_map_class_init (PangoWin32FontMapClass *class) pango_module_register (&_pango_included_win32_modules[i]); } -static PangoWin32FontMap *default_fontmap = NULL; - /** * pango_win32_font_map_for_display: * @@ -1031,17 +1030,10 @@ pango_win32_fontmap_cache_remove (PangoFontMap *fontmap, PangoWin32Font *win32font) { PangoWin32FontMap *win32fontmap = PANGO_WIN32_FONT_MAP (fontmap); + GList *link = g_queue_find (win32fontmap->freed_fonts, win32font); - GList *link = g_list_find (win32fontmap->freed_fonts->head, win32font); - if (link == win32fontmap->freed_fonts->tail) - { - win32fontmap->freed_fonts->tail = win32fontmap->freed_fonts->tail->prev; - if (win32fontmap->freed_fonts->tail) - win32fontmap->freed_fonts->tail->next = NULL; - } - - win32fontmap->freed_fonts->head = g_list_delete_link (win32fontmap->freed_fonts->head, link); - win32fontmap->freed_fonts->length--; + if (link) + g_queue_delete_link (win32fontmap->freed_fonts, link); win32font->in_cache = FALSE; g_object_unref (win32font); @@ -1051,8 +1043,6 @@ static void pango_win32_fontmap_cache_clear (PangoWin32FontMap *win32fontmap) { g_list_foreach (win32fontmap->freed_fonts->head, (GFunc)g_object_unref, NULL); - g_list_free (win32fontmap->freed_fonts->head); - win32fontmap->freed_fonts->head = NULL; - win32fontmap->freed_fonts->tail = NULL; - win32fontmap->freed_fonts->length = 0; + g_queue_free (win32fontmap->freed_fonts); + win32fontmap->freed_fonts = g_queue_new (); } |