[pygobject] Fix handling of uchar in pyg_value_from_pyobject
- From: Gian Mario Tagliaretti <gianmt src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [pygobject] Fix handling of uchar in pyg_value_from_pyobject
- Date: Fri, 25 Dec 2009 17:07:04 +0000 (UTC)
commit 2bd92cba5b028f0f78c35ecb34e648e95248f9d3
Author: Bastian Winkler <buz netbuz org>
Date: Fri Aug 14 15:10:26 2009 +0200
Fix handling of uchar in pyg_value_from_pyobject
Set the value by g_value_set_uchar and allow to use integer types
from python.
gobject/pygtype.c | 15 +++++++++++----
1 files changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/gobject/pygtype.c b/gobject/pygtype.c
index 782e998..5550ce8 100644
--- a/gobject/pygtype.c
+++ b/gobject/pygtype.c
@@ -740,13 +740,20 @@ pyg_value_from_pyobject(GValue *value, PyObject *obj)
Py_DECREF(tmp);
break;
case G_TYPE_UCHAR:
- if ((tmp = PyObject_Str(obj)))
- g_value_set_char(value, _PyUnicode_AsString(tmp)[0]);
- else {
+ if (_PyLong_Check(obj)) {
+ glong val;
+ val = _PyLong_AsLong(obj);
+ if (val >= 0 && val <= 255)
+ g_value_set_uchar(value, (guchar)_PyLong_AsLong (obj));
+ else
+ return -1;
+ } else if ((tmp = PyObject_Str(obj))) {
+ g_value_set_uchar(value, _PyUnicode_AsString(tmp)[0]);
+ Py_DECREF(tmp);
+ } else {
PyErr_Clear();
return -1;
}
- Py_DECREF(tmp);
break;
case G_TYPE_BOOLEAN:
g_value_set_boolean(value, PyObject_IsTrue(obj));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]