summaryrefslogtreecommitdiffstats
path: root/gobject/gobjectmodule.c
diff options
context:
space:
mode:
authorJames Henstridge <james@daa.com.au>2002-07-09 15:27:57 +0000
committerJames Henstridge <jamesh@src.gnome.org>2002-07-09 15:27:57 +0000
commitbf4674b72ab3c906d45458dcab26f6d5c7fe507b (patch)
tree42b462ad7bceeabb3fe7145a0fb35908ba368930 /gobject/gobjectmodule.c
parent80ba97b5bdcea9aadcdee5a565bc83e646be0bb0 (diff)
downloadpygobject-bf4674b72ab3c906d45458dcab26f6d5c7fe507b.tar.gz
pygobject-bf4674b72ab3c906d45458dcab26f6d5c7fe507b.tar.xz
pygobject-bf4674b72ab3c906d45458dcab26f6d5c7fe507b.zip
Reworking of Arjan Molenaar's (arjanmolenaar@hetnet.nl) patch from bugPYGTK_1_99_11
2002-07-09 James Henstridge <james@daa.com.au> Reworking of Arjan Molenaar's (arjanmolenaar@hetnet.nl) patch from bug 71435. * gtk/libglade.override (connect_one): watch the closure. (connect_many): watch the closure. * gtk/gtk.override (_wrap_gtk_toolbar_append_item): watch closure for signal. (_wrap_gtk_toolbar_prepend_item): same here. (_wrap_gtk_toolbar_insert_item): same here. (_wrap_gtk_toolbar_insert_stock): same here. (_wrap_gtk_toolbar_append_element): same here. (_wrap_gtk_toolbar_prepend_element): same here. (_wrap_gtk_toolbar_insert_element): same here. * pygobject.h (_PyGObject_Functions): add pygobject_watch_closure to the list of exported functions. * pygobject.c (pygobject_watch_closure): new function to watch a closure. We perform cyclic garbage collection on watched closures. The closure will automatically be unwatched when it gets invalidated. (pygobject_traverse): traverse watched closures as well. (pygobject_clear): invalidate all watched closures (pygobject_dealloc): invalidate watched closures on dealloc too. (PyGObject_Type): register the invalidate handler. (pygobject_connect): watch the closure we connect here. (pygobject_connect_after): same here.. (pygobject_connect_object): same here. (pygobject_connect_object_after): same here. * pygtype.c (pyg_closure_new): clean up closure on invalidate, rather than finalize (on invalidate, we break references). * pygobject.h (PyGObject): add closures member to store references to PyGClosures.
Diffstat (limited to 'gobject/gobjectmodule.c')
-rw-r--r--gobject/gobjectmodule.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
index 2e6b471..33f82f0 100644
--- a/gobject/gobjectmodule.c
+++ b/gobject/gobjectmodule.c
@@ -1295,6 +1295,7 @@ struct _PyGObject_Functions pygobject_api_functions = {
pygobject_new,
pyg_closure_new,
+ pygobject_watch_closure,
pyg_destroy_notify,
pyg_type_from_object,