[pygobject] Use G_IS_VALUE for checking return values in closure marshaling
- From: Simon Feltman <sfeltman src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pygobject] Use G_IS_VALUE for checking return values in closure marshaling
- Date: Mon, 2 Sep 2013 03:13:34 +0000 (UTC)
commit dab0c09f1996e124ca98334e5aea0852904b44b5
Author: Simon Feltman <sfeltman src gnome org>
Date: Sun Sep 1 17:49:09 2013 -0700
Use G_IS_VALUE for checking return values in closure marshaling
Replace return_value argument NULL checks in GClosureMarshal
implementations with G_IS_VALUE. This checks both NULL and
validity of the value (!= G_TYPE_INVALID). This is needed
because GLib can pass either NULL or an invalid value based
on whether or not G_ENABLE_DEBUG is set.
See: https://bugzilla.gnome.org/show_bug.cgi?id=707249
https://bugzilla.gnome.org/show_bug.cgi?id=707170
gi/_gobject/pygtype.c | 4 ++--
gi/pygi-signal-closure.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/gi/_gobject/pygtype.c b/gi/_gobject/pygtype.c
index 0b920f6..9dc1153 100644
--- a/gi/_gobject/pygtype.c
+++ b/gi/_gobject/pygtype.c
@@ -1362,7 +1362,7 @@ pyg_closure_marshal(GClosure *closure,
goto out;
}
- if (return_value && pyg_value_from_pyobject(return_value, ret) != 0) {
+ if (G_IS_VALUE(return_value) && pyg_value_from_pyobject(return_value, ret) != 0) {
/* If we already have an exception set, use that, otherwise set a
* generic one */
if (!PyErr_Occurred())
@@ -1543,7 +1543,7 @@ pyg_signal_class_closure_marshal(GClosure *closure,
}
Py_DECREF(method);
Py_DECREF(params);
- if (return_value)
+ if (G_IS_VALUE(return_value))
pyg_value_from_pyobject(return_value, ret);
Py_DECREF(ret);
pyglib_gil_state_release(state);
diff --git a/gi/pygi-signal-closure.c b/gi/pygi-signal-closure.c
index 20c6b56..bcd1320 100644
--- a/gi/pygi-signal-closure.c
+++ b/gi/pygi-signal-closure.c
@@ -155,7 +155,7 @@ pygi_signal_closure_marshal(GClosure *closure,
goto out;
}
- if (return_value && pyg_value_from_pyobject(return_value, ret) != 0) {
+ if (G_IS_VALUE(return_value) && pyg_value_from_pyobject(return_value, ret) != 0) {
PyErr_SetString(PyExc_TypeError,
"can't convert return value to desired type");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]