structure-parser: define GES_STRUCTURE_PARSER macro
authorJustin Kim <justin.kim@collabora.com>
Mon, 28 Sep 2015 04:21:11 +0000 (13:21 +0900)
committerThibault Saunier <tsaunier@gnome.org>
Mon, 28 Sep 2015 13:57:25 +0000 (15:57 +0200)
And fix trivial leakages of internal list structure.

https://bugzilla.gnome.org/show_bug.cgi?id=755716

ges/ges-structure-parser.c
ges/ges-structure-parser.h

index 5c276fd..8acb048 100644 (file)
@@ -32,15 +32,10 @@ ges_structure_parser_init (GESStructureParser * self)
 static void
 _finalize (GObject * self)
 {
-  GList *tmp;
-
-  for (tmp = ((GESStructureParser *) self)->structures; tmp; tmp = tmp->next) {
-    gst_structure_free (tmp->data);
-  }
+  GESStructureParser *parser = GES_STRUCTURE_PARSER (self);
 
-  for (tmp = ((GESStructureParser *) self)->wrong_strings; tmp; tmp = tmp->next) {
-    g_free (tmp->data);
-  }
+  g_list_free_full (parser->structures, (GDestroyNotify) gst_structure_free);
+  g_list_free_full (parser->wrong_strings, (GDestroyNotify) g_free);
 }
 
 static void
index 587c7ce..9dedbc4 100644 (file)
@@ -26,6 +26,7 @@
 G_BEGIN_DECLS
 
 #define GES_TYPE_STRUCTURE_PARSER            ges_structure_parser_get_type()
+#define GES_STRUCTURE_PARSER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_STRUCTURE_PARSER, GESStructureParser))
 
 typedef struct _GESStructureParser GESStructureParser;
 typedef struct _GESStructureParserClass GESStructureParserClass;