From 4e20227a58deb774e23c2fcb2d7e2135526a05fc Mon Sep 17 00:00:00 2001 From: James Henstridge Date: Sun, 7 Jul 2002 12:45:43 +0000 Subject: update to use this function. (ArgMatcher.register_boxed): short circuit if 2002-07-07 James Henstridge * codegen/argtypes.py (GtkTreePathArg.write_return): update to use this function. (ArgMatcher.register_boxed): short circuit if there is already a handler for the boxed type (helps with setting custom handlers for boxed types). * gtk/gtk-types.c (pygdk_rectangle_from_pyobject): new function to parse a GdkRectangle from a PyObject. * gtk/pygtktreemodel.c (pygtk_generic_tree_model_get_path): print a warning if the return value could not be converted to a GtkTreePath. * gtk/gtk.override (_wrap_gtk_tree_model_get_value): don't assume tree paths are tuples. * codegen/argtypes.py (GtkTreePathArg.write_param): fix up code generator to get rid of assumption that tree paths are tuples, and catch case where pygtk_tree_path_from_pyobject() returns NULL. * gtk/gtk-types.c (pygtk_tree_path_from_pyobject): change so that we treat an integer PyObject as a tree path with a single index. * pygtype.c (pyg_closure_marshal): apply patch from Arjan Molenaar that fixes a reference leak for the argument tuple passed to the callback. (pyg_signal_class_closure_marshal): apply similar fix here. --- gobject/pygtype.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'gobject') diff --git a/gobject/pygtype.c b/gobject/pygtype.c index 36256b7..9db7990 100644 --- a/gobject/pygtype.c +++ b/gobject/pygtype.c @@ -675,11 +675,13 @@ pyg_closure_marshal(GClosure *closure, if (ret == NULL) { PyErr_Print(); PyErr_Clear(); + Py_DECREF(params); pyg_unblock_threads(); return; } if (return_value) pyg_value_from_pyobject(return_value, ret); + Py_DECREF(params); Py_DECREF(ret); pyg_unblock_threads(); } @@ -789,10 +791,12 @@ pyg_signal_class_closure_marshal(GClosure *closure, PyErr_Print(); PyErr_Clear(); Py_DECREF(method); + Py_DECREF(params); pyg_unblock_threads(); return; } Py_DECREF(method); + Py_DECREF(params); if (return_value) pyg_value_from_pyobject(return_value, ret); Py_DECREF(ret); -- cgit