summaryrefslogtreecommitdiffstats
path: root/gobject/gobjectmodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'gobject/gobjectmodule.c')
-rw-r--r--gobject/gobjectmodule.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
index bd3b727..f9eb627 100644
--- a/gobject/gobjectmodule.c
+++ b/gobject/gobjectmodule.c
@@ -622,10 +622,14 @@ pyg_object_set_property (GObject *object, guint property_id,
PyObject *object_wrapper, *retval;
PyObject *py_pspec, *py_value;
+ pyg_block_threads();
+
object_wrapper = pygobject_new(object);
- g_return_if_fail(object_wrapper != NULL);
- pyg_block_threads();
+ if (object_wrapper == NULL) {
+ pyg_unblock_threads();
+ g_return_if_fail(object_wrapper != NULL);
+ }
py_pspec = pyg_param_spec_new(pspec);
py_value = pyg_value_as_pyobject (value, TRUE);
@@ -653,10 +657,14 @@ pyg_object_get_property (GObject *object, guint property_id,
PyObject *object_wrapper, *retval;
PyObject *py_pspec;
+ pyg_block_threads();
+
object_wrapper = pygobject_new(object);
- g_return_if_fail(object_wrapper != NULL);
- pyg_block_threads();
+ if (object_wrapper == NULL) {
+ pyg_unblock_threads();
+ g_return_if_fail(object_wrapper != NULL);
+ }
py_pspec = pyg_param_spec_new(pspec);
retval = PyObject_CallMethod(object_wrapper, "do_get_property",