Kaydet (Commit) 16454360 authored tarafından Guido van Rossum's avatar Guido van Rossum

Now that we have standard (optional) long long support, the long long

support in this module can go.  The patch only deletes code
(PyLong_FromLongLong() and PyLong_AsLongLong()).  By Sjoerd Mullender.
üst 80c7bcf6
...@@ -85,72 +85,6 @@ ErrorHandler(long code, const char *fmt, ...) ...@@ -85,72 +85,6 @@ ErrorHandler(long code, const char *fmt, ...)
#ifdef AL_NO_ELEM /* IRIX 6 */ #ifdef AL_NO_ELEM /* IRIX 6 */
static PyObject *
PyLong_FromLongLong(long long v)
{
/* XXXX Somewhat complicated way to convert a long long to a PyLong */
PyObject *l = NULL, *lhi, *llo;
int is_negative = 0;
static PyObject *i32; /* 32 as a python long */
if (v < 0) {
is_negative = 1;
v = -v;
}
lhi = PyLong_FromUnsignedLong((unsigned long) ((unsigned long long) v >> 32));
llo = PyLong_FromUnsignedLong((unsigned long) (v & 0xFFFFFFFFLL));
if (i32 == NULL)
i32 = PyLong_FromLong(32L); /* don't decref */
if (PyErr_Occurred())
goto error;
if ((l = PyNumber_Lshift(lhi, i32)) == NULL)
goto error;
Py_DECREF(lhi);
lhi = l;
if ((l = PyNumber_Or(lhi, llo)) == NULL)
goto error;
Py_DECREF(lhi);
Py_DECREF(llo);
if (is_negative) {
if ((lhi = PyNumber_Negative(l)) == NULL)
goto error;
Py_DECREF(l);
l = lhi;
}
return l;
error:
Py_XDECREF(lhi);
Py_XDECREF(llo);
Py_XDECREF(l);
return NULL;
}
static long long
PyLong_AsLongLong(PyObject *v)
{
/* XXXX Somewhat complicated way to convert a PyLong to a long long */
static PyObject *i2_32; /* 2**32 as a python long */
PyObject *lhi, *llo;
long long ihi;
unsigned long long ilo;
if (!PyLong_Check(v)) {
PyErr_BadInternalCall();
return -1;
}
if (i2_32 == NULL)
i2_32 = PyLong_FromLongLong(0x100000000LL); /* don't decref */
if ((v = PyNumber_Divmod(v, i2_32)) == NULL)
return -1;
lhi = PyTuple_GetItem(v, 0);
llo = PyTuple_GetItem(v, 1);
ihi = PyLong_AsLong(lhi);
ilo = PyLong_AsUnsignedLong(llo);
Py_DECREF(v);
return ihi * 0x100000000LL + ilo;
}
static PyObject * static PyObject *
param2python(int resource, int param, ALvalue value, ALparamInfo *pinfo) param2python(int resource, int param, ALvalue value, ALparamInfo *pinfo)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment