summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Reiter <reiter.christoph@gmail.com>2018-01-30 14:46:40 +0000
committerChristoph Reiter <reiter.christoph@gmail.com>2018-01-30 14:46:40 +0000
commit8811bfc695a8513e49cfc8ba1e304a3ed0814fa9 (patch)
tree9c9c671e9d33344aad15035502ac58bebaccdcd6
parent0dca3f4f577c540d8e09097b6e414708c8d54108 (diff)
parent1fbf74eb06bbe2868fd40ea9f3fc1addc27e4bc3 (diff)
downloadpygobject-8811bfc695a8513e49cfc8ba1e304a3ed0814fa9.tar.gz
Merge branch 'property_fix' into 'master'
gobjectmodule: do not clear floating flag in set_/get_property See merge request GNOME/pygobject!8
-rw-r--r--gi/gobjectmodule.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/gi/gobjectmodule.c b/gi/gobjectmodule.c
index ba1b9fc9..b3501eed 100644
--- a/gi/gobjectmodule.c
+++ b/gi/gobjectmodule.c
@@ -168,7 +168,12 @@ pyg_object_set_property (GObject *object, guint property_id,
state = PyGILState_Ensure();
- object_wrapper = pygobject_new(object);
+ object_wrapper = g_object_get_qdata(object, pygobject_wrapper_key);
+
+ if (object_wrapper)
+ Py_INCREF (object_wrapper);
+ else
+ object_wrapper = pygobject_new(object);
if (object_wrapper == NULL) {
PyGILState_Release(state);
@@ -202,7 +207,12 @@ pyg_object_get_property (GObject *object, guint property_id,
state = PyGILState_Ensure();
- object_wrapper = pygobject_new(object);
+ object_wrapper = g_object_get_qdata(object, pygobject_wrapper_key);
+
+ if (object_wrapper)
+ Py_INCREF (object_wrapper);
+ else
+ object_wrapper = pygobject_new(object);
if (object_wrapper == NULL) {
PyGILState_Release(state);