[Bug 765540] New: gst_element_base_class_finalize() is never called

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Mon Apr 25 13:54:44 UTC 2016


https://bugzilla.gnome.org/show_bug.cgi?id=765540

            Bug ID: 765540
           Summary: gst_element_base_class_finalize() is never called
    Classification: Platform
           Product: GStreamer
           Version: git master
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gstreamer (core)
          Assignee: gstreamer-bugs at lists.freedesktop.org
          Reporter: gdesmott at gnome.org
        QA Contact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---

gst_element_base_class_finalize() is defined as a GTypeInfo.base_finalize but
those functions are actually never called with static types. That means it will
never be called for any GstElement subclass.
That's too bad because this function is supposed to unref GstPadTemplate which
are actually leaked.

It's not the end of the world but it clutter test results when tracking leaks 
using tools like valgrind, GST_TRACE or my refcount tracer (bug #765052). It
also makes it harder/impossible to rely on such tools to implement automatic
leaks regression tests.

I'm not sure of the proper way to address this. One option could be to track
class creations in gst_element_base_class_init(), store them in a static list
and manually destroy them with a specific API called from gst_deinit(). It's a
bit hacky and not the cleanness but that should do the job I think

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list