summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gst/debug/efence.c13
2 files changed, 17 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 84f7a5cf..a40f9b25 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-02-12 Sebastian Dröge <slomo@circular-chaos.org>
+
+ * gst/debug/efence.c: (gst_fenced_buffer_finalize),
+ (gst_fenced_buffer_class_init):
+ Properly chain up finalize method. Fixes bug #515979.
+
2008-02-12 Jan Schmidt <jan.schmidt@sun.com>
* sys/ximage/gstximagesrc.c:
diff --git a/gst/debug/efence.c b/gst/debug/efence.c
index d77afbb0..90b98cb0 100644
--- a/gst/debug/efence.c
+++ b/gst/debug/efence.c
@@ -376,9 +376,13 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
"access to data in the buffer is more likely to cause segmentation "
"faults. This allocation method is very similar to the debugging tool "
"\"Electric Fence\".",
- plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN)
+ plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN);
- static void gst_fenced_buffer_finalize (GstFencedBuffer * buffer)
+
+static GstBufferClass *fenced_buffer_parent_class = NULL;
+
+static void
+gst_fenced_buffer_finalize (GstFencedBuffer * buffer)
{
GstFencedBuffer *fenced_buffer;
@@ -392,6 +396,9 @@ GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
fenced_buffer->length);
munmap (fenced_buffer->region, fenced_buffer->length);
}
+
+ GST_MINI_OBJECT_CLASS (fenced_buffer_parent_class)->
+ finalize (GST_MINI_OBJECT (buffer));
}
static GstFencedBuffer *
@@ -498,6 +505,8 @@ gst_fenced_buffer_class_init (gpointer g_class, gpointer class_data)
{
GstMiniObjectClass *mini_object_class = GST_MINI_OBJECT_CLASS (g_class);
+ fenced_buffer_parent_class = g_type_class_peek_parent (g_class);
+
mini_object_class->finalize =
(GstMiniObjectFinalizeFunction) gst_fenced_buffer_finalize;
mini_object_class->copy = (GstMiniObjectCopyFunction) gst_fenced_buffer_copy;