diff options
author | Grigori Goronzy <greg@blackbox> | 2011-02-16 20:31:15 +0100 |
---|---|---|
committer | Grigori Goronzy <greg@blackbox> | 2011-02-16 20:31:15 +0100 |
commit | cd0cfa32d2df699a79a0ef72b011216f409dbf47 (patch) | |
tree | d1382da95be3c99b0cbb992e225a174944021bd3 | |
parent | ff88d8bdb9bad44230368fb9420c09ecb5b812da (diff) | |
download | libass-cd0cfa32d2df699a79a0ef72b011216f409dbf47.tar.bz2 libass-cd0cfa32d2df699a79a0ef72b011216f409dbf47.tar.xz |
Fix fontconfig disabled at runtime
MPlayer is able to use this configuration with the -nofontconfig flag;
this fixes crashes in case no font is available. Fixes a crash at uninit
as well.
-rw-r--r-- | libass/ass_drawing.c | 10 | ||||
-rw-r--r-- | libass/ass_fontconfig.c | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/libass/ass_drawing.c b/libass/ass_drawing.c index 93cc458..940c66b 100644 --- a/libass/ass_drawing.c +++ b/libass/ass_drawing.c @@ -118,9 +118,10 @@ static void drawing_finish(ASS_Drawing *drawing, int raw_mode) // Close the last contour drawing_close_shape(drawing); - ass_msg(drawing->library, MSGL_V, - "Parsed drawing with %d points and %d contours", ol->n_points, - ol->n_contours); + if (drawing->library) + ass_msg(drawing->library, MSGL_V, + "Parsed drawing with %d points and %d contours", ol->n_points, + ol->n_contours); if (raw_mode) return; @@ -367,7 +368,8 @@ ASS_Drawing *ass_drawing_new(void *fontconfig_priv, ASS_Font *font, drawing->fontconfig_priv = fontconfig_priv; drawing->font = font; drawing->ftlibrary = lib; - drawing->library = font->library; + if (font) + drawing->library = font->library; drawing->scale_x = 1.; drawing->scale_y = 1.; diff --git a/libass/ass_fontconfig.c b/libass/ass_fontconfig.c index 2571739..33ef976 100644 --- a/libass/ass_fontconfig.c +++ b/libass/ass_fontconfig.c @@ -522,7 +522,8 @@ void fontconfig_done(FCInstance *priv) if (priv) { #ifdef CONFIG_FONTCONFIG - FcConfigDestroy(priv->config); + if (priv->config) + FcConfigDestroy(priv->config); #endif free(priv->path_default); free(priv->family_default); |