diff --git a/ChangeLog b/ChangeLog index 84f7a5cf98..a40f9b2523 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-02-12 Sebastian Dröge + + * 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 * sys/ximage/gstximagesrc.c: diff --git a/gst/debug/efence.c b/gst/debug/efence.c index d77afbb0b6..90b98cb041 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;