summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrcombs <rcombs@rcombs.me>2022-07-26 22:02:14 -0500
committerrcombs <rcombs@rcombs.me>2022-11-15 21:14:37 -0600
commit5cda37139d0a55484893f23f874f38329cfdabb9 (patch)
treed911aa950404bdbda78a0d801bb64d613d248d1c
parentf724fcc45e2f40f2dbe080d513a896ead4d7fc87 (diff)
downloadlibass-5cda37139d0a55484893f23f874f38329cfdabb9.tar.bz2
libass-5cda37139d0a55484893f23f874f38329cfdabb9.tar.xz
ass_render: take RenderContext* in free_render_context
-rw-r--r--libass/ass_render.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c
index 12d75a2..d69cfcb 100644
--- a/libass/ass_render.c
+++ b/libass/ass_render.c
@@ -1112,17 +1112,18 @@ init_render_context(ASS_Renderer *render_priv, ASS_Event *event)
render_priv->state.justify = render_priv->state.style->Justify;
}
-static void free_render_context(ASS_Renderer *render_priv)
+static void free_render_context(RenderContext *state)
{
- ass_cache_dec_ref(render_priv->state.font);
+ ass_cache_dec_ref(state->font);
- render_priv->state.font = NULL;
- render_priv->state.family.str = NULL;
- render_priv->state.family.len = 0;
- render_priv->state.clip_drawing_text.str = NULL;
- render_priv->state.clip_drawing_text.len = 0;
+ state->font = NULL;
+ state->family.str = NULL;
+ state->family.len = 0;
+ state->clip_drawing_text.str = NULL;
+ state->clip_drawing_text.len = 0;
- render_priv->text_info.length = 0;
+ if (state->text_info)
+ state->text_info->length = 0;
}
/**
@@ -2161,7 +2162,7 @@ static bool parse_events(ASS_Renderer *render_priv, ASS_Event *event)
return true;
fail:
- free_render_context(render_priv);
+ free_render_context(state);
return false;
}
@@ -2225,7 +2226,7 @@ static void reorder_text(ASS_Renderer *render_priv)
if (!cmap) {
ass_msg(render_priv->library, MSGL_ERR, "Failed to reorder text");
ass_shaper_cleanup(render_priv->shaper, text_info);
- free_render_context(render_priv);
+ free_render_context(&render_priv->state);
return;
}
@@ -2789,7 +2790,7 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event,
return false;
}
- free_render_context(render_priv);
+ free_render_context(&render_priv->state);
init_render_context(render_priv, event);
if (!parse_events(render_priv, event))
@@ -2798,7 +2799,7 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event,
TextInfo *text_info = &render_priv->text_info;
if (text_info->length == 0) {
// no valid symbols in the event; this can be smth like {comment}
- free_render_context(render_priv);
+ free_render_context(&render_priv->state);
return false;
}
@@ -2811,7 +2812,7 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event,
text_info->length);
if (!ass_shaper_shape(render_priv->shaper, text_info)) {
ass_msg(render_priv->library, MSGL_ERR, "Failed to shape text");
- free_render_context(render_priv);
+ free_render_context(&render_priv->state);
return false;
}
@@ -2990,7 +2991,7 @@ ass_render_event(ASS_Renderer *render_priv, ASS_Event *event,
add_background(render_priv, event_images);
ass_shaper_cleanup(render_priv->shaper, text_info);
- free_render_context(render_priv);
+ free_render_context(&render_priv->state);
return true;
}