summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pango/pangowin32-fontmap.c27
-rw-r--r--pango/pangowin32-private.h2
2 files changed, 11 insertions, 18 deletions
diff --git a/pango/pangowin32-fontmap.c b/pango/pangowin32-fontmap.c
index ff7a6e94..09de5fa0 100644
--- a/pango/pangowin32-fontmap.c
+++ b/pango/pangowin32-fontmap.c
@@ -611,19 +611,6 @@ read_windows_fallbacks (GHashTable *ht_aliases)
#endif
-
-static gboolean
-load_aliases (GHashTable *ht_aliases)
-{
-
-#ifdef HAVE_CAIRO_WIN32
- read_windows_fallbacks (ht_aliases);
- read_builtin_aliases (ht_aliases);
-#endif
-
- return TRUE;
-}
-
static void
lookup_aliases (GHashTable *aliases_ht,
const char *fontname,
@@ -634,9 +621,6 @@ lookup_aliases (GHashTable *aliases_ht,
struct PangoAlias *alias;
static gsize aliases_inited = 0;
- if (g_once_init_enter (&aliases_inited))
- g_once_init_leave (&aliases_inited, load_aliases (aliases_ht));
-
alias_key.alias = g_ascii_strdown (fontname, -1);
alias = g_hash_table_lookup (aliases_ht, &alias_key);
g_free (alias_key.alias);
@@ -775,8 +759,9 @@ pango_win32_font_map_fontset_add_fonts (PangoFontMap *fontmap,
int n_aliases;
int j;
PangoWin32FontMap *win32fontmap = PANGO_WIN32_FONT_MAP (fontmap);
+ PangoWin32FontMapClass *class = (PangoWin32FontMapClass*)G_OBJECT_GET_CLASS(win32fontmap);
- lookup_aliases (win32fontmap->aliases, family, &aliases, &n_aliases);
+ lookup_aliases (class->aliases, family, &aliases, &n_aliases);
if (n_aliases)
{
for (j = 0; j < n_aliases; j++)
@@ -819,6 +804,14 @@ _pango_win32_font_map_class_init (PangoWin32FontMapClass *class)
fontmap_class->list_families = pango_win32_font_map_list_families;
fontmap_class->shape_engine_type = PANGO_RENDER_TYPE_WIN32;
fontmap_class->get_face = pango_win32_font_map_get_face;
+ class->aliases = g_hash_table_new_full ((GHashFunc)alias_hash,
+ (GEqualFunc)alias_equal,
+ (GDestroyNotify)alias_free,
+ NULL);
+#ifdef HAVE_CAIRO_WIN32
+ read_windows_fallbacks (class->aliases);
+ read_builtin_aliases (class->aliases);
+#endif
_pango_win32_get_display_dc ();
}
diff --git a/pango/pangowin32-private.h b/pango/pangowin32-private.h
index f5620b87..1c9c1c09 100644
--- a/pango/pangowin32-private.h
+++ b/pango/pangowin32-private.h
@@ -113,7 +113,7 @@ struct _PangoWin32FontMapClass
PangoContext *context,
PangoWin32Face *face,
const PangoFontDescription *desc);
-
+ GHashTable *aliases;
};
struct _PangoWin32Font