Mercurial > mplayer.hg
diff libass/ass_drawing.c @ 31875:ac6e48baa03d
Import libass 0.9.11
This version fixes a (sometimes pretty bad) memory leak.
author | greg |
---|---|
date | Wed, 11 Aug 2010 01:14:37 +0000 |
parents | e64df5862cea |
children | 34215c3e6e10 |
line wrap: on
line diff
--- a/libass/ass_drawing.c Tue Aug 10 13:33:49 2010 +0000 +++ b/libass/ass_drawing.c Wed Aug 11 01:14:37 2010 +0000 @@ -34,13 +34,13 @@ * \brief Get and prepare a FreeType glyph */ static void drawing_make_glyph(ASS_Drawing *drawing, void *fontconfig_priv, - ASS_Font *font, ASS_Hinting hint) + ASS_Font *font) { FT_OutlineGlyph glyph; // This is hacky... glyph = (FT_OutlineGlyph) ass_font_get_glyph(fontconfig_priv, font, - (uint32_t) ' ', hint, 0); + (uint32_t) ' ', 0, 0); if (glyph) { FT_Outline_Done(drawing->ftlibrary, &glyph->outline); FT_Outline_New(drawing->ftlibrary, GLYPH_INITIAL_POINTS, @@ -355,7 +355,7 @@ * \brief Create and initialize a new drawing and return it */ ASS_Drawing *ass_drawing_new(void *fontconfig_priv, ASS_Font *font, - ASS_Hinting hint, FT_Library lib) + FT_Library lib) { ASS_Drawing *drawing; @@ -364,12 +364,10 @@ drawing->size = DRAWING_INITIAL_SIZE; drawing->cbox.xMin = drawing->cbox.yMin = INT_MAX; drawing->cbox.xMax = drawing->cbox.yMax = INT_MIN; - + drawing->fontconfig_priv = fontconfig_priv; + drawing->font = font; drawing->ftlibrary = lib; - if (font) { - drawing->library = font->library; - drawing_make_glyph(drawing, fontconfig_priv, font, hint); - } + drawing->library = font->library; drawing->scale_x = 1.; drawing->scale_y = 1.; @@ -422,6 +420,8 @@ ASS_DrawingToken *token; FT_Vector pen = {0, 0}; + if (drawing->font) + drawing_make_glyph(drawing, drawing->fontconfig_priv, drawing->font); if (!drawing->glyph) return NULL;