summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr.Smile <vabnick@gmail.com>2014-11-04 14:24:28 +0300
committerDr.Smile <vabnick@gmail.com>2014-11-23 01:49:10 +0300
commit93bd3d9c3a22e354e4720c6b60ba7bbf17d0f461 (patch)
tree410c6f303b02b89e21afd60742b2df22c8a98b20
parentb7bf69ff05de1c9775faa909efc923c9a0e07c5d (diff)
downloadlibass-93bd3d9c3a22e354e4720c6b60ba7bbf17d0f461.tar.bz2
libass-93bd3d9c3a22e354e4720c6b60ba7bbf17d0f461.tar.xz
Fix incorrect closing of last drawing contour
-rw-r--r--libass/ass_drawing.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/libass/ass_drawing.c b/libass/ass_drawing.c
index 2d9e2d7..70afae5 100644
--- a/libass/ass_drawing.c
+++ b/libass/ass_drawing.c
@@ -70,10 +70,8 @@ static inline void drawing_close_shape(ASS_Drawing *drawing)
drawing->max_contours);
}
- if (ol->n_points) {
- ol->contours[ol->n_contours] = ol->n_points - 1;
- ol->n_contours++;
- }
+ ol->contours[ol->n_contours] = ol->n_points - 1;
+ ol->n_contours++;
}
/*
@@ -97,9 +95,6 @@ static void drawing_finish(ASS_Drawing *drawing, int raw_mode)
FT_BBox bbox = drawing->cbox;
FT_Outline *ol = &drawing->outline;
- // Close the last contour
- drawing_close_shape(drawing);
-
if (drawing->library)
ass_msg(drawing->library, MSGL_V,
"Parsed drawing with %d points and %d contours", ol->n_points,
@@ -407,6 +402,10 @@ FT_Outline *ass_drawing_parse(ASS_Drawing *drawing, int raw_mode)
}
}
+ // Close the last contour
+ if (started)
+ drawing_close_shape(drawing);
+
drawing_finish(drawing, raw_mode);
drawing_free_tokens(drawing->tokens);
return &drawing->outline;