diff options
| author | James Henstridge <james@daa.com.au> | 2002-07-09 15:27:57 +0000 |
|---|---|---|
| committer | James Henstridge <jamesh@src.gnome.org> | 2002-07-09 15:27:57 +0000 |
| commit | bf4674b72ab3c906d45458dcab26f6d5c7fe507b (patch) | |
| tree | 42b462ad7bceeabb3fe7145a0fb35908ba368930 /gobject/gobjectmodule.c | |
| parent | 80ba97b5bdcea9aadcdee5a565bc83e646be0bb0 (diff) | |
| download | pygobject-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.c | 1 |
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, |
