summaryrefslogtreecommitdiff
path: root/gobject/gobjectmodule.c
diff options
context:
space:
mode:
Diffstat (limited to 'gobject/gobjectmodule.c')
-rw-r--r--gobject/gobjectmodule.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c
index 98956880..f2a7d2e0 100644
--- a/gobject/gobjectmodule.c
+++ b/gobject/gobjectmodule.c
@@ -2619,6 +2619,29 @@ pyg_set_object_has_new_constructor(GType type)
g_type_set_qdata(type, pygobject_has_updated_constructor_key, GINT_TO_POINTER(1));
}
+#define GET_INT(x) (((PyIntObject*)x)->ob_ival)
+PyObject *
+pyg_integer_richcompare(PyObject *v, PyObject *w, int op)
+{
+ PyObject *result;
+ gboolean t;
+
+ switch (op) {
+ case Py_EQ: t = GET_INT(v) == GET_INT(w); break;
+ case Py_NE: t = GET_INT(v) != GET_INT(w); break;
+ case Py_LE: t = GET_INT(v) <= GET_INT(w); break;
+ case Py_GE: t = GET_INT(v) >= GET_INT(w); break;
+ case Py_LT: t = GET_INT(v) < GET_INT(w); break;
+ case Py_GT: t = GET_INT(v) > GET_INT(w); break;
+ default: g_assert_not_reached();
+ }
+
+ result = t ? Py_True : Py_False;
+ Py_INCREF(result);
+ return result;
+}
+#undef GET_INT
+
static void
_log_func(const gchar *log_domain,
GLogLevelFlags log_level,