diff options
-rw-r--r-- | libass/ass_font.c | 3 | ||||
-rw-r--r-- | libass/ass_render.c | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c index e76420d..52e6d3a 100644 --- a/libass/ass_font.c +++ b/libass/ass_font.c @@ -142,6 +142,7 @@ static int add_face(void *fc_priv, ass_font_t *font, uint32_t ch) if (error) { ass_msg(MSGL_WARN, MSGTR_LIBASS_ErrorOpeningMemoryFont, path); + free(path); return -1; } } else { @@ -149,6 +150,7 @@ static int add_face(void *fc_priv, ass_font_t *font, uint32_t ch) if (error) { ass_msg(MSGL_WARN, MSGTR_LIBASS_ErrorOpeningFont, path, index); + free(path); return -1; } } @@ -158,6 +160,7 @@ static int add_face(void *fc_priv, ass_font_t *font, uint32_t ch) font->faces[font->n_faces++] = face; update_transform(font); face_set_size(face, font->size); + free(path); return font->n_faces - 1; } diff --git a/libass/ass_render.c b/libass/ass_render.c index afea67d..6662e51 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -338,6 +338,9 @@ void ass_renderer_done(ass_renderer_t *render_priv) free(render_priv); free(render_priv->text_info.glyphs); free(render_priv->text_info.lines); + + free(render_priv->settings.default_font); + free(render_priv->settings.default_family); } /** @@ -2679,6 +2682,8 @@ int ass_set_fonts(ass_renderer_t *priv, const char *default_font, if (priv->settings.default_family) free(priv->settings.default_family); + free(priv->settings.default_font); + free(priv->settings.default_family); priv->settings.default_font = default_font ? strdup(default_font) : 0; priv->settings.default_family = default_family ? strdup(default_family) : 0; |