[pygobject] when converting an object with transfer none, make sure the wrapper owns a ref
- From: John Palmieri <johnp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pygobject] when converting an object with transfer none, make sure the wrapper owns a ref
- Date: Mon, 17 Oct 2011 18:47:05 +0000 (UTC)
commit 611f58b99851328653af4930f188c33eccaa9f6f
Author: John (J5) Palmieri <johnp redhat com>
Date: Fri Oct 14 16:42:32 2011 -0400
when converting an object with transfer none, make sure the wrapper owns a ref
https://bugzilla.gnome.org/show_bug.cgi?id=661359
gi/pygi-argument.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/gi/pygi-argument.c b/gi/pygi-argument.c
index 4564f3d..3b36c2f 100644
--- a/gi/pygi-argument.c
+++ b/gi/pygi-argument.c
@@ -1662,6 +1662,16 @@ _pygi_argument_to_object (GIArgument *arg,
Py_INCREF (object);
break;
}
+
+ /* since we will unref the object when the
+ * wrapper is destroyed and we don't want
+ * GTK removing the object while the
+ * wrapper is live, we take a gobject reference
+ * when one is not transfered to us
+ */
+ if (transfer == GI_TRANSFER_NOTHING)
+ g_object_ref (G_OBJECT(arg->v_pointer));
+
object = pygobject_new (arg->v_pointer);
break;
default:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]