From 2c9df6000e93158e14cf279e0cf3ee19acad11d0 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Sun, 27 Jul 2008 09:49:13 +0000 Subject: Add a Py_TYPE macro for accessing ob_type. 2008-07-27 Johan Dahlin * glib/pyglib-python-compat.h: Add a Py_TYPE macro for accessing ob_type. * glib/glibmodule.c (pyglib_register_constants): * gobject/gobjectmodule.c (pygobject__g_instance_init), (pyg_integer_richcompare): * gobject/pygenum.c (pyg_enum_repr), (pyg_enum_from_gtype), (pyg_enum_add), (pyg_enum_get_value_name), (pyg_enum_get_value_nick): * gobject/pygflags.c (pyg_flags_repr), (pyg_flags_from_gtype), (pyg_flags_add), (pyg_flags_and), (pyg_flags_or), (pyg_flags_xor), (pyg_flags_get_first_value_name), (pyg_flags_get_first_value_nick), (pyg_flags_get_value_names), (pyg_flags_get_value_nicks): Use Py_TYPE and PyLong macros to access struct fields svn path=/trunk/; revision=885 --- gobject/gobjectmodule.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'gobject/gobjectmodule.c') diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 0ec1382..7fb9154 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1045,7 +1045,7 @@ pygobject__g_instance_init(GTypeInstance *instance, wrapper = pygobject_new_full(object, FALSE, g_class); args = PyTuple_New(0); kwargs = PyDict_New(); - if (wrapper->ob_type->tp_init(wrapper, args, kwargs)) + if (Py_TYPE(wrapper)->tp_init(wrapper, args, kwargs)) PyErr_Print(); Py_DECREF(args); Py_DECREF(kwargs); @@ -2306,7 +2306,6 @@ 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) (((_PyLongObject*)x)->ob_ival) PyObject * pyg_integer_richcompare(PyObject *v, PyObject *w, int op) { @@ -2314,12 +2313,12 @@ pyg_integer_richcompare(PyObject *v, PyObject *w, int op) 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; + case Py_EQ: t = _PyLong_AS_LONG(v) == _PyLong_AS_LONG(w); break; + case Py_NE: t = _PyLong_AS_LONG(v) != _PyLong_AS_LONG(w); break; + case Py_LE: t = _PyLong_AS_LONG(v) <= _PyLong_AS_LONG(w); break; + case Py_GE: t = _PyLong_AS_LONG(v) >= _PyLong_AS_LONG(w); break; + case Py_LT: t = _PyLong_AS_LONG(v) < _PyLong_AS_LONG(w); break; + case Py_GT: t = _PyLong_AS_LONG(v) > _PyLong_AS_LONG(w); break; default: g_assert_not_reached(); } @@ -2327,7 +2326,6 @@ pyg_integer_richcompare(PyObject *v, PyObject *w, int op) Py_INCREF(result); return result; } -#undef GET_INT static void _log_func(const gchar *log_domain, -- cgit