summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2012-01-11 15:01:39 +0000
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2012-01-11 15:03:08 +0000
commit4f043cf34a8001c071644eb8c89dc7d43e86b62a (patch)
treeed5d9528135327764a84fa9d4bccb21a30e2adea
parentcdc0ca5c72686aab38a172f14da3b38fe304baa9 (diff)
downloaddbus-python-4f043cf34a8001c071644eb8c89dc7d43e86b62a.tar.gz
Use native 'int' (whatever that means) for variant_level etc.
This reverts the Python 2 API to be in terms of PyInt, leaving the Python 3 API in terms of PyLong (which is called 'int' in Python code).
-rw-r--r--NEWS3
-rw-r--r--PY3PORT.rst2
-rw-r--r--_dbus_bindings/abstract.c12
-rw-r--r--_dbus_bindings/bytes.c4
-rw-r--r--_dbus_bindings/conn-methods.c2
-rw-r--r--_dbus_bindings/dbus_bindings-internal.h6
-rw-r--r--_dbus_bindings/message-get-args.c2
-rw-r--r--_dbus_bindings/message.c2
8 files changed, 17 insertions, 16 deletions
diff --git a/NEWS b/NEWS
index b720e30..9135e59 100644
--- a/NEWS
+++ b/NEWS
@@ -15,9 +15,6 @@ API changes:
* The repr() of every dbus-python object is now unicode.
-* Some values which were ints (mainly variant_level attributes)
- are now longs under Python 2.
-
* The Python 3 API is not the same as the Python 2 API; see PY3PORT.rst
for details.
diff --git a/PY3PORT.rst b/PY3PORT.rst
index 9e8c306..31bb9d8 100644
--- a/PY3PORT.rst
+++ b/PY3PORT.rst
@@ -37,8 +37,6 @@ unchanged. There are a few changes you'll notice in Python 2 though:
- The minimum supported Python 2 version is 2.6.
- All object reprs are unicodes. This change was made because it greatly
simplifies the implementation and cross-compatibility with Python 3.
- - Some values which were ints are now longs. Primarily, this affects the
- type of the `variant_level` attributes.
- Some exception strings have changed.
- `MethodCallMessage` and `SignalMessage` objects have better reprs now.
diff --git a/_dbus_bindings/abstract.c b/_dbus_bindings/abstract.c
index 1e2fa25..2b31d43 100644
--- a/_dbus_bindings/abstract.c
+++ b/_dbus_bindings/abstract.c
@@ -61,7 +61,7 @@ dbus_py_variant_level_get(PyObject *obj)
*/
return 0;
}
- variant_level = PyLong_AsLong(vl_obj);
+ variant_level = NATIVEINT_ASLONG(vl_obj);
if (variant_level == -1 && PyErr_Occurred()) {
/* variant_level < 0 can never be inserted into the dictionary; see
* dbus_py_variant_level_set() below. The semantics of setting
@@ -92,7 +92,7 @@ dbus_py_variant_level_set(PyObject *obj, long variant_level)
}
}
else {
- PyObject *vl_obj = PyLong_FromLong(variant_level);
+ PyObject *vl_obj = NATIVEINT_FROMLONG(variant_level);
if (!vl_obj) {
Py_CLEAR(key);
return FALSE;
@@ -148,7 +148,7 @@ dbus_py_variant_level_getattro(PyObject *obj, PyObject *name)
Py_CLEAR(key);
if (!value)
- return PyLong_FromLong(0);
+ return NATIVEINT_FROMLONG(0);
Py_INCREF(value);
return value;
}
@@ -444,7 +444,7 @@ DBusPythonBytes_tp_repr(PyObject *self)
Py_CLEAR(parent_repr);
return NULL;
}
- variant_level = PyLong_AsLong(vl_obj);
+ variant_level = NATIVEINT_ASLONG(vl_obj);
Py_CLEAR(vl_obj);
if (variant_level == -1 && PyErr_Occurred()) {
Py_CLEAR(parent_repr);
@@ -566,7 +566,7 @@ DBusPythonString_tp_repr(PyObject *self)
Py_CLEAR(parent_repr);
return NULL;
}
- variant_level = PyLong_AsLong(vl_obj);
+ variant_level = NATIVEINT_ASLONG(vl_obj);
Py_CLEAR(vl_obj);
if (variant_level == -1 && PyErr_Occurred()) {
Py_CLEAR(parent_repr);
@@ -688,7 +688,7 @@ DBusPythonLong_tp_repr(PyObject *self)
Py_CLEAR(parent_repr);
return NULL;
}
- variant_level = PyLong_AsLong(vl_obj);
+ variant_level = NATIVEINT_ASLONG(vl_obj);
Py_CLEAR(vl_obj);
if (variant_level < 0 && PyErr_Occurred()) {
Py_CLEAR(parent_repr);
diff --git a/_dbus_bindings/bytes.c b/_dbus_bindings/bytes.c
index e053f43..9914319 100644
--- a/_dbus_bindings/bytes.c
+++ b/_dbus_bindings/bytes.c
@@ -92,7 +92,7 @@ Byte_new(PyTypeObject *cls, PyObject *args, PyObject *kwargs)
if (PyBytes_GET_SIZE(obj) != 1) {
goto bad_arg;
}
- obj = PyLong_FromLong((unsigned char)(PyBytes_AS_STRING(obj)[0]));
+ obj = NATIVEINT_FROMLONG((unsigned char)(PyBytes_AS_STRING(obj)[0]));
if (!obj)
goto bad_arg;
}
@@ -147,7 +147,7 @@ bad_range:
static PyObject *
Byte_tp_str(PyObject *self)
{
- long i = PyLong_AsLong(self);
+ long i = NATIVEINT_ASLONG(self);
unsigned char str[2] = { 0, 0 };
if (i == -1 && PyErr_Occurred())
diff --git a/_dbus_bindings/conn-methods.c b/_dbus_bindings/conn-methods.c
index a5390c5..555c49c 100644
--- a/_dbus_bindings/conn-methods.c
+++ b/_dbus_bindings/conn-methods.c
@@ -564,7 +564,7 @@ Connection_get_unix_fd (Connection *self, PyObject *unused UNUSED)
ok = dbus_connection_get_unix_fd (self->conn, &fd);
Py_END_ALLOW_THREADS
if (!ok) Py_RETURN_NONE;
- return PyLong_FromLong(fd);
+ return NATIVEINT_FROMLONG(fd);
}
PyDoc_STRVAR(Connection_get_peer_unix_user__doc__,
diff --git a/_dbus_bindings/dbus_bindings-internal.h b/_dbus_bindings/dbus_bindings-internal.h
index 48f4222..8069666 100644
--- a/_dbus_bindings/dbus_bindings-internal.h
+++ b/_dbus_bindings/dbus_bindings-internal.h
@@ -77,10 +77,16 @@ static inline int type##_CheckExact (PyObject *o) \
(PyUnicode_Check(obj) ? NULL : PyBytes_AS_STRING(obj))
#ifdef PY3
+#define NATIVEINT_TYPE (PyLong_Type)
+#define NATIVEINT_FROMLONG(x) (PyLong_FromLong(x))
+#define NATIVEINT_ASLONG(x) (PyLong_AsLong(x))
#define NATIVESTR_TYPE (PyUnicode_Type)
#define NATIVESTR_CHECK(obj) (PyUnicode_Check(obj))
#define NATIVESTR_FROMSTR(obj) (PyUnicode_FromString(obj))
#else
+#define NATIVEINT_TYPE (PyInt_Type)
+#define NATIVEINT_FROMLONG(x) (PyInt_FromLong(x))
+#define NATIVEINT_ASLONG(x) (PyInt_AsLong(x))
#define NATIVESTR_TYPE (PyBytes_Type)
#define NATIVESTR_CHECK(obj) (PyBytes_Check(obj))
#define NATIVESTR_FROMSTR(obj) (PyBytes_FromString(obj))
diff --git a/_dbus_bindings/message-get-args.c b/_dbus_bindings/message-get-args.c
index b9be821..ceea3a4 100644
--- a/_dbus_bindings/message-get-args.c
+++ b/_dbus_bindings/message-get-args.c
@@ -217,7 +217,7 @@ _message_iter_get_pyobject(DBusMessageIter *iter,
if (variant_level > 0 && type != DBUS_TYPE_VARIANT) {
PyObject *variant_level_int;
- variant_level_int = PyLong_FromLong(variant_level);
+ variant_level_int = NATIVEINT_FROMLONG(variant_level);
if (!variant_level_int) {
return NULL;
}
diff --git a/_dbus_bindings/message.c b/_dbus_bindings/message.c
index 32bb84a..ded8fe1 100644
--- a/_dbus_bindings/message.c
+++ b/_dbus_bindings/message.c
@@ -388,7 +388,7 @@ static PyObject *
Message_get_type(Message *self, PyObject *unused UNUSED)
{
if (!self->msg) return DBusPy_RaiseUnusableMessage();
- return PyLong_FromLong(dbus_message_get_type(self->msg));
+ return NATIVEINT_FROMLONG(dbus_message_get_type(self->msg));
}
PyDoc_STRVAR(Message_get_serial__doc__,