diff options
author | Christoph Reiter <reiter.christoph@gmail.com> | 2018-01-30 14:46:40 +0000 |
---|---|---|
committer | Christoph Reiter <reiter.christoph@gmail.com> | 2018-01-30 14:46:40 +0000 |
commit | 8811bfc695a8513e49cfc8ba1e304a3ed0814fa9 (patch) | |
tree | 9c9c671e9d33344aad15035502ac58bebaccdcd6 | |
parent | 0dca3f4f577c540d8e09097b6e414708c8d54108 (diff) | |
parent | 1fbf74eb06bbe2868fd40ea9f3fc1addc27e4bc3 (diff) | |
download | pygobject-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.c | 14 |
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); |