overrides: fix callback setter overrides (bis)
authorMathieu Duponchelle <mathieu@centricular.com>
Mon, 2 Sep 2019 16:11:56 +0000 (18:11 +0200)
committerMathieu Duponchelle <mathieu@centricular.com>
Mon, 2 Sep 2019 16:42:39 +0000 (18:42 +0200)
commitc04bb945b0b95e0f8686f3b9994a3327ccf74863
tree9b595c7fd536eded1fdbc9c8a90fa9bad261d4b6
parent34e0e3ce1113a3b6e50ec6e9cd76d4b205c7c100
overrides: fix callback setter overrides (bis)

The previous commit broke those by trying to pass weak refs
through pygobject, but we should probably have tested the elements
beyond instantiation: weakref.WeakMethod returns a callable, but
that callable when called only returns the ephemeral bound method,
which is the object we want to call, but pygobject has no support
for that.

Instead, fix the memory leaks we were going after by decoupling the
lifecycle of the callback and that of the pad, by passing functors
to pygobject.
gi/overrides/Gst.py