Fix memory management problems with struct arguments to signals
commitd70b300c7415dd7b20ff88b09fe835690da19831
authorSimon Feltman <sfeltman@src.gnome.org>
Sun, 7 Sep 2014 06:58:25 +0000 (6 23:58 -0700)
committerSimon Feltman <sfeltman@src.gnome.org>
Mon, 8 Sep 2014 20:58:57 +0000 (8 13:58 -0700)
tree7f3b87fa134d991c64b1f2b8722c63933d45cb23
parent09161ff690ad37c94668d5d65191f4d84829d41f
Fix memory management problems with struct arguments to signals

Replicate struct marshaling logic for determining if struct arguments
to signals should be passed by reference to callbacks.
Maintain a list of these structs and apply an in-place copy of the struct
pointer if the struct wrapper is held longer than the duration of the
Python callback. This allows for both mutation of struct arguments from
callbacks as well as memory safety incase a callbacks holds onto the struct.

https://bugzilla.gnome.org/show_bug.cgi?id=736175
gi/pygi-boxed.c
gi/pygi-boxed.h
gi/pygi-signal-closure.c
tests/test_overrides_gtk.py
tests/test_signal.py