From 3df27a11f20c5985f51c32849eebc98a4329e0f5 Mon Sep 17 00:00:00 2001 From: Jan Schmidt Date: Sun, 4 Mar 2007 17:13:19 +0000 Subject: [PATCH] ext/cdio/gstcdiocddasrc.c: Make sure we always destroy our libcdio handle. Original commit message from CVS: * ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open), (gst_cdio_cdda_src_finalize): Make sure we always destroy our libcdio handle. --- ext/cdio/gstcdiocddasrc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c index 0e8967ea61..ca3258eeca 100644 --- a/ext/cdio/gstcdiocddasrc.c +++ b/ext/cdio/gstcdiocddasrc.c @@ -287,6 +287,9 @@ not_audio: { GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ, (_("Disc is not an Audio CD.")), ("discmode: %d", (gint) discmode)); + + cdio_destroy (src->cdio); + src->cdio = NULL; return FALSE; } } @@ -312,6 +315,13 @@ gst_cdio_cdda_src_init (GstCdioCddaSrc * src, GstCdioCddaSrcClass * klass) static void gst_cdio_cdda_src_finalize (GObject * obj) { + GstCdioCddaSrc *src = GST_CDIO_CDDA_SRC (obj); + + if (src->cdio) { + cdio_destroy (src->cdio); + src->cdio = NULL; + } + G_OBJECT_CLASS (parent_class)->finalize (obj); }