static PangoCairoFontGlyphExtentsCacheEntry * _pango_cairo_font_private_get_glyph_extents_cache_entry (PangoCairoFontPrivate *cf_priv, PangoGlyph glyph) { PangoCairoFontGlyphExtentsCacheEntry *entry; guint idx; idx = glyph & GLYPH_CACHE_MASK; entry = cf_priv->glyph_extents_cache + idx; if (entry->glyph != glyph) { compute_glyph_extents (cf_priv, glyph, entry); } return entry; }
static PangoCairoWin32GlyphInfo * pango_cairo_win32_font_get_glyph_info (PangoFont *font, PangoGlyph glyph) { PangoCairoWin32Font *cwfont = (PangoCairoWin32Font *)font; PangoCairoWin32GlyphInfo *info; info = g_hash_table_lookup (cwfont->glyph_info, GUINT_TO_POINTER (glyph)); if (!info) { info = g_new0 (PangoCairoWin32GlyphInfo, 1); compute_glyph_extents (font, glyph, &info->ink_rect, &info->logical_rect); g_hash_table_insert (cwfont->glyph_info, GUINT_TO_POINTER (glyph), info); } return info; }