diff options
author | wm4 <wm4@nowhere> | 2015-05-10 22:28:23 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-05-10 22:52:11 +0200 |
commit | 44fdcdfb5bb94501af138deb56a01398749c82ab (patch) | |
tree | 465abd27bb32c4010f3d90757c5c278ad3ad2e12 /libass/ass_render.c | |
parent | 810517bf29618045b55a994a5e6fae41bcb20ebc (diff) | |
download | libass-44fdcdfb5bb94501af138deb56a01398749c82ab.tar.bz2 libass-44fdcdfb5bb94501af138deb56a01398749c82ab.tar.xz |
Fix memory leak with drawings
What.
Closes #175.
Diffstat (limited to 'libass/ass_render.c')
-rw-r--r-- | libass/ass_render.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index 21c6f6f1..18ddea44 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -972,6 +972,11 @@ static void free_render_context(ASS_Renderer *render_priv) render_priv->state.family = NULL; render_priv->state.clip_drawing = NULL; + + TextInfo *text_info = &render_priv->text_info; + for (int n = 0; n < text_info->length; n++) + ass_drawing_free(text_info->glyphs[n].drawing); + text_info->length = 0; } /* @@ -2450,8 +2455,8 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event, return 1; } + free_render_context(render_priv); init_render_context(render_priv, event); - text_info->length = 0; if (parse_events(render_priv, event)) return 1; |