aboutsummaryrefslogtreecommitdiffstats
path: root/libshiboken/sbkenum.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libshiboken/sbkenum.cpp')
-rw-r--r--libshiboken/sbkenum.cpp26
1 files changed, 18 insertions, 8 deletions
diff --git a/libshiboken/sbkenum.cpp b/libshiboken/sbkenum.cpp
index 98fd11e8a..059c41749 100644
--- a/libshiboken/sbkenum.cpp
+++ b/libshiboken/sbkenum.cpp
@@ -91,7 +91,7 @@ static PyObject* SbkEnum_tp_new(PyTypeObject* type, PyObject* args, PyObject* kw
return reinterpret_cast<PyObject*>(self);
}
-static PyObject* enum_int(PyObject *v)
+static PyObject* enum_int(PyObject* v)
{
#ifdef IS_PY3K
return PyLong_FromLong(SBK_ENUM(v)->ob_value);
@@ -100,12 +100,9 @@ static PyObject* enum_int(PyObject *v)
#endif
}
-static PyObject* enum_bool(PyObject* v)
+static int enum_bool(PyObject* v)
{
- if (SBK_ENUM(v)->ob_value)
- Py_RETURN_TRUE;
- else
- Py_RETURN_FALSE;
+ return (SBK_ENUM(v)->ob_value > 0);
}
static long getNumberValue(PyObject* v)
@@ -173,22 +170,35 @@ static PyNumberMethods enum_as_number = {
/* nb_add */ 0,
/* nb_subtract */ 0,
/* nb_multiply */ 0,
+#ifndef IS_PY3K
+ /* nb_divide */ 0,
+#endif
/* nb_remainder */ 0,
/* nb_divmod */ 0,
/* nb_power */ 0,
/* nb_negative */ 0,
/* nb_positive */ 0,
- /* nb_absolute */ enum_bool,
- /* nb_bool */ 0,
+ /* nb_absolute */ 0,
+ /* nb_bool */ enum_bool,
/* nb_invert */ 0,
/* nb_lshift */ 0,
/* nb_rshift */ 0,
/* nb_and */ 0,
/* nb_xor */ 0,
/* nb_or */ 0,
+#ifndef IS_PY3K
+ /* nb_coerce */ 0,
+#endif
/* nb_int */ enum_int,
+#ifdef IS_PY3K
/* nb_reserved */ 0,
/* nb_float */ 0,
+#else
+ /* nb_long */ enum_int,
+ /* nb_float */ 0,
+ /* nb_oct */ 0,
+ /* nb_hex */ 0,
+#endif
/* nb_inplace_add */ 0,
/* nb_inplace_subtract */ 0,