[gstreamer-bugs] [Bug 338982] New: python refcounting problems in gstpad.override

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Wed Apr 19 02:13:16 PDT 2006


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=338982
 GStreamer | gst-python | Ver: HEAD CVS

           Summary: python refcounting problems in gstpad.override
           Product: GStreamer
           Version: HEAD CVS
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gst-python
        AssignedTo: gstreamer-bugs at lists.sourceforge.net
        ReportedBy: wingo at pobox.com
         QAContact: johan at gnome.org
     GNOME version: Unspecified
   GNOME milestone: Unspecified


File:
http://webcvs.freedesktop.org/gstreamer/gst-python/gst/gstpad.override?annotate=1.30

In _wrap_gst_pad_set_blocked_async:

Line 1019: PySequence_GetItem returns a ref. We never drop this one.

1022, 1030: Here we ref the callback twice, once for PySequence_GetItem, once
for BuildValue("O"). We just need one ref (for the tuple), so one of these is
leaked.

1034: The data tuple is leaked here. This is a GStreamer C API problem -- we
have no free function for pad_blocked data. You can't just free it when the
first block() is called, because a pad can be blocked twice (e.g. if a flush
happens after the first block).

We leak refs in all error cases.

In pad_block_callback_marshal:

980, 983, 998: We give away our ref to py_data on line 983, but we still unref
it on 998. This is incorrect.

988: Complicated code for no purpose. py_userdata is a 2-tuple, as built on
line 1030. No need to iterate.

Attached patch fixes problems, please review.


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.




More information about the Gstreamer-bugs mailing list