summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-05-10 22:28:23 +0200
committerwm4 <wm4@nowhere>2015-05-10 22:52:11 +0200
commit44fdcdfb5bb94501af138deb56a01398749c82ab (patch)
tree465abd27bb32c4010f3d90757c5c278ad3ad2e12
parent810517bf29618045b55a994a5e6fae41bcb20ebc (diff)
downloadlibass-44fdcdfb5bb94501af138deb56a01398749c82ab.tar.bz2
libass-44fdcdfb5bb94501af138deb56a01398749c82ab.tar.xz
Fix memory leak with drawings
What. Closes #175.
-rw-r--r--libass/ass_render.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index 21c6f6f..18ddea4 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;