summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Henstridge <jamesh@src.gnome.org>2002-11-16 12:05:35 +0000
committerJames Henstridge <jamesh@src.gnome.org>2002-11-16 12:05:35 +0000
commit3e31fa180f82a411d584d2fbe06eff67088a9fa5 (patch)
tree18f135d7fa340a3330e5897ebe3864aa44ab59f3
parent59e783f24a4804f8064f8f31608d4d656a5f4fdd (diff)
downloadpygobject-3e31fa180f82a411d584d2fbe06eff67088a9fa5.tar.gz
pygobject-3e31fa180f82a411d584d2fbe06eff67088a9fa5.tar.xz
pygobject-3e31fa180f82a411d584d2fbe06eff67088a9fa5.zip
(pyg_value_as_pyobject): when converting G_TYPE_BOOLEAN values to
python objects, return one of Py_True or Py_False, so that Python 2.3 will return an instance of bool.
-rw-r--r--gobject/pygtype.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/gobject/pygtype.c b/gobject/pygtype.c
index 6a6659b..13218e7 100644
--- a/gobject/pygtype.c
+++ b/gobject/pygtype.c
@@ -505,18 +505,19 @@ pyg_value_as_pyobject(const GValue *value, gboolean copy_boxed)
return pygobject_new(g_value_get_object(value));
else
break;
- case G_TYPE_CHAR:
- {
- gint8 val = g_value_get_char(value);
- return PyString_FromStringAndSize((char *)&val, 1);
- }
- case G_TYPE_UCHAR:
- {
- guint8 val = g_value_get_uchar(value);
- return PyString_FromStringAndSize((char *)&val, 1);
- }
- case G_TYPE_BOOLEAN:
- return PyInt_FromLong(g_value_get_boolean(value));
+ case G_TYPE_CHAR: {
+ gint8 val = g_value_get_char(value);
+ return PyString_FromStringAndSize((char *)&val, 1);
+ }
+ case G_TYPE_UCHAR: {
+ guint8 val = g_value_get_uchar(value);
+ return PyString_FromStringAndSize((char *)&val, 1);
+ }
+ case G_TYPE_BOOLEAN: {
+ PyObject *val = g_value_get_boolean(value) ? Py_True : Py_False;
+ Py_INCREF(val);
+ return val;
+ }
case G_TYPE_INT:
return PyInt_FromLong(g_value_get_int(value));
case G_TYPE_UINT: