From 43dba6cefc15af76c4da48d87d84e2e39b71a5f0 Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 24 Jun 2009 10:45:52 +0200 Subject: [PATCH] miniobjects: Don't chain up to empty finalize method. If ever we do anything in mini_object_finalize, we should make sure the 4 core miniobject finalize methods chain back up again. --- gst/gstbuffer.c | 4 ++-- gst/gstevent.c | 2 +- gst/gstmessage.c | 2 +- gst/gstminiobject.c | 8 ++++++++ gst/gstquery.c | 2 +- 5 files changed, 13 insertions(+), 5 deletions(-) diff --git a/gst/gstbuffer.c b/gst/gstbuffer.c index 9adad9e116..9919211a8f 100644 --- a/gst/gstbuffer.c +++ b/gst/gstbuffer.c @@ -165,8 +165,8 @@ gst_buffer_finalize (GstBuffer * buffer) gst_caps_replace (&GST_BUFFER_CAPS (buffer), NULL); - ((GstMiniObjectClass *) - gst_buffer_parent_class)->finalize (GST_MINI_OBJECT_CAST (buffer)); +/* ((GstMiniObjectClass *) */ +/* gst_buffer_parent_class)->finalize (GST_MINI_OBJECT_CAST (buffer)); */ } /** diff --git a/gst/gstevent.c b/gst/gstevent.c index ba208c1eac..fceb256888 100644 --- a/gst/gstevent.c +++ b/gst/gstevent.c @@ -231,7 +231,7 @@ gst_event_finalize (GstEvent * event) gst_structure_free (event->structure); } - GST_MINI_OBJECT_CLASS (parent_class)->finalize (GST_MINI_OBJECT (event)); +/* GST_MINI_OBJECT_CLASS (parent_class)->finalize (GST_MINI_OBJECT (event)); */ } static GstEvent * diff --git a/gst/gstmessage.c b/gst/gstmessage.c index 10bac83f4b..80fd0c294e 100644 --- a/gst/gstmessage.c +++ b/gst/gstmessage.c @@ -207,7 +207,7 @@ gst_message_finalize (GstMessage * message) gst_structure_free (message->structure); } - GST_MINI_OBJECT_CLASS (parent_class)->finalize (GST_MINI_OBJECT (message)); +/* GST_MINI_OBJECT_CLASS (parent_class)->finalize (GST_MINI_OBJECT (message)); */ } static GstMessage * diff --git a/gst/gstminiobject.c b/gst/gstminiobject.c index 46526b723f..2386dba05e 100644 --- a/gst/gstminiobject.c +++ b/gst/gstminiobject.c @@ -159,6 +159,14 @@ static void gst_mini_object_finalize (GstMiniObject * obj) { /* do nothing */ + + /* WARNING: if anything is ever put in this method, make sure that the + * following sub-classes' finalize method chains up to this one: + * gstbuffer + * gstevent + * gstmessage + * gstquery + */ } /** diff --git a/gst/gstquery.c b/gst/gstquery.c index acbc661578..fe771e664e 100644 --- a/gst/gstquery.c +++ b/gst/gstquery.c @@ -191,7 +191,7 @@ gst_query_finalize (GstQuery * query) gst_structure_free (query->structure); } - GST_MINI_OBJECT_CLASS (parent_class)->finalize (GST_MINI_OBJECT (query)); +/* GST_MINI_OBJECT_CLASS (parent_class)->finalize (GST_MINI_OBJECT (query)); */ } static GstQuery *