summaryrefslogtreecommitdiffstats
path: root/gst/festival/gstfestival.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/festival/gstfestival.c')
-rw-r--r--gst/festival/gstfestival.c20
1 files changed, 18 insertions, 2 deletions
diff --git a/gst/festival/gstfestival.c b/gst/festival/gstfestival.c
index 0d8395c9..7a147c95 100644
--- a/gst/festival/gstfestival.c
+++ b/gst/festival/gstfestival.c
@@ -97,6 +97,8 @@
GST_DEBUG_CATEGORY_STATIC (festival_debug);
#define GST_CAT_DEFAULT festival_debug
+static void gst_festival_finalize (GObject * object);
+
static void gst_festival_base_init (gpointer g_class);
static void gst_festival_class_init (GstFestivalClass * klass);
static void gst_festival_init (GstFestival * festival);
@@ -189,13 +191,17 @@ gst_festival_base_init (gpointer g_class)
static void
gst_festival_class_init (GstFestivalClass * klass)
{
+ GObjectClass *gobject_class;
GstElementClass *gstelement_class;
- gstelement_class = (GstElementClass *) klass;
+ gobject_class = G_OBJECT_CLASS (klass);
+ gstelement_class = GST_ELEMENT_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
- gstelement_class->change_state = gst_festival_change_state;
+ gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_festival_finalize);
+ gstelement_class->change_state =
+ GST_DEBUG_FUNCPTR (gst_festival_change_state);
}
static void
@@ -213,6 +219,16 @@ gst_festival_init (GstFestival * festival)
festival->info = festival_default_info ();
}
+static void
+gst_festival_finalize (GObject * object)
+{
+ GstFestival *festival = GST_FESTIVAL (object);
+
+ g_free (festival->info);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
static gboolean
read_response (GstFestival * festival)
{