diff options
author | Grigori Goronzy <greg@blackbox> | 2009-10-11 09:07:26 +0200 |
---|---|---|
committer | Grigori Goronzy <greg@blackbox> | 2009-10-11 09:07:26 +0200 |
commit | 4ede45574b3bb83faa705e042ab9e1d8d726f58f (patch) | |
tree | cd4dc57da80abe79eb2c481835fe64502659d4a2 /libass/ass_parse.c | |
parent | 88d43f79747fb649d730ade5f8c221573be0be7b (diff) | |
download | libass-4ede45574b3bb83faa705e042ab9e1d8d726f58f.tar.bz2 libass-4ede45574b3bb83faa705e042ab9e1d8d726f58f.tar.xz |
Fix libass w/o fontconfig
Make sure that libass does not crash even if no default font is
provided. Additionally, fix crashes related to drawings in this and
possibly other unusual cases.
Document the default_path and default_family parameters of
ass_set_fonts.
Diffstat (limited to 'libass/ass_parse.c')
-rw-r--r-- | libass/ass_parse.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/libass/ass_parse.c b/libass/ass_parse.c index fb407bf..a5b9b59 100644 --- a/libass/ass_parse.c +++ b/libass/ass_parse.c @@ -233,20 +233,20 @@ static char *parse_vector_clip(ASS_Renderer *render_priv, char *p) while (*p != ')' && *p != '}' && p != 0) ass_drawing_add_char(drawing, *p++); skipopt(')'); - ass_drawing_parse(drawing, 1); - - // We need to translate the clip according to screen borders - if (render_priv->settings.left_margin != 0 || - render_priv->settings.top_margin != 0) { - FT_Vector trans = { - .x = int_to_d6(render_priv->settings.left_margin), - .y = -int_to_d6(render_priv->settings.top_margin), - }; - FT_Outline_Translate(&drawing->glyph->outline, trans.x, trans.y); + if (ass_drawing_parse(drawing, 1)) { + // We need to translate the clip according to screen borders + if (render_priv->settings.left_margin != 0 || + render_priv->settings.top_margin != 0) { + FT_Vector trans = { + .x = int_to_d6(render_priv->settings.left_margin), + .y = -int_to_d6(render_priv->settings.top_margin), + }; + FT_Outline_Translate(&drawing->glyph->outline, trans.x, trans.y); + } + ass_msg(render_priv->library, MSGL_DBG2, + "Parsed vector clip: scale %d, scales (%f, %f) string [%s]\n", + scale, drawing->scale_x, drawing->scale_y, drawing->text); } - ass_msg(render_priv->library, MSGL_DBG2, - "Parsed vector clip: scale %d, scales (%f, %f) string [%s]\n", - scale, drawing->scale_x, drawing->scale_y, drawing->text); return p; } |