From 81157e5168e9890c879639b002d060bce4cc4ec7 Mon Sep 17 00:00:00 2001 From: Chris Bass Date: Tue, 25 Apr 2017 10:17:49 +0100 Subject: [PATCH] ttmlparse: Replace repeated warning code with a function. Encapsulates in a function the code that warns of an illegally positioned element, rather than repeating the same code multiple times. Also frees a string allocated by ttml_get_element_type_string, which was previously being leaked. https://bugzilla.gnome.org/show_bug.cgi?id=781725 --- ext/ttml/ttmlparse.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/ext/ttml/ttmlparse.c b/ext/ttml/ttmlparse.c index 2ad0b0d..3c20df1 100644 --- a/ext/ttml/ttmlparse.c +++ b/ext/ttml/ttmlparse.c @@ -1538,6 +1538,16 @@ ttml_blend_colors (GstSubtitleColor color1, GstSubtitleColor color2) } +static void +ttml_warn_of_mispositioned_element (TtmlElement * element) +{ + gchar *type = ttml_get_element_type_string (element); + GST_CAT_WARNING (ttmlparse_debug, "Ignoring illegally positioned %s element.", + type); + g_free (type); +} + + /* Create the subtitle region and its child blocks and elements for @tree, * inserting element text in @buf. Ownership of created region is transferred * to caller. */ @@ -1572,9 +1582,7 @@ ttml_create_subtitle_region (GNode * tree, GstBuffer * buf, guint cellres_x, element = node->data; if (element->type != TTML_ELEMENT_TYPE_DIV) { - GST_CAT_WARNING (ttmlparse_debug, - "Ignoring %s child of body element: only a div is allowed here.", - ttml_get_element_type_string (element)); + ttml_warn_of_mispositioned_element (element); continue; } div_color = @@ -1590,9 +1598,7 @@ ttml_create_subtitle_region (GNode * tree, GstBuffer * buf, guint cellres_x, element = p_node->data; if (element->type != TTML_ELEMENT_TYPE_P) { - GST_CAT_WARNING (ttmlparse_debug, - "Ignoring %s child of div element: only a p is allowed here.", - ttml_get_element_type_string (element)); + ttml_warn_of_mispositioned_element (element); continue; } p_color = @@ -1624,15 +1630,11 @@ ttml_create_subtitle_region (GNode * tree, GstBuffer * buf, guint cellres_x, || element->type == TTML_ELEMENT_TYPE_ANON_SPAN) { ttml_add_element (block, element, buf, cellres_x, cellres_y); } else { - GST_CAT_WARNING (ttmlparse_debug, - "Ignoring illegally positioned %s element.", - ttml_get_element_type_string (element)); + ttml_warn_of_mispositioned_element (element); } } } else { - GST_CAT_WARNING (ttmlparse_debug, - "Ignoring illegally positioned %s element.", - ttml_get_element_type_string (element)); + ttml_warn_of_mispositioned_element (element); } } -- 2.7.4