From e1a0d11c5cceeb71b22f3e3148f8f7d6bc0b4d8f Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Tue, 23 Oct 2007 19:24:22 +0000 Subject: #1316: remove redundant PyLong_Check calls when PyInt_Check was already called. --- Modules/_ctypes/_ctypes.c | 13 ++++++------- Modules/_ctypes/cfield.c | 10 +++++----- Modules/_sqlite/row.c | 7 +------ Modules/_sqlite/statement.c | 11 +++++++---- Modules/cjkcodecs/multibytecodec.c | 6 ++---- Objects/sliceobject.c | 4 ++-- Python/getargs.c | 4 +--- 7 files changed, 24 insertions(+), 31 deletions(-) diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c index 22f2cb3..cca570a 100644 --- a/Modules/_ctypes/_ctypes.c +++ b/Modules/_ctypes/_ctypes.c @@ -236,7 +236,7 @@ static PyObject * CDataType_from_address(PyObject *type, PyObject *value) { void *buf; - if (!PyInt_Check(value) && !PyLong_Check(value)) { + if (!PyInt_Check(value)) { PyErr_SetString(PyExc_TypeError, "integer expected"); return NULL; @@ -265,7 +265,7 @@ CDataType_in_dll(PyObject *type, PyObject *args) obj = PyObject_GetAttrString(dll, "_handle"); if (!obj) return NULL; - if (!PyInt_Check(obj) && !PyLong_Check(obj)) { + if (!PyInt_Check(obj)) { PyErr_SetString(PyExc_TypeError, "the _handle attribute of the second argument must be an integer"); Py_DECREF(obj); @@ -1233,7 +1233,7 @@ c_void_p_from_param(PyObject *type, PyObject *value) } /* Should probably allow buffer interface as well */ /* int, long */ - if (PyInt_Check(value) || PyLong_Check(value)) { + if (PyInt_Check(value)) { PyCArgObject *parg; struct fielddesc *fd = getentry("P"); @@ -2697,7 +2697,7 @@ static int _get_name(PyObject *obj, char **pname) { #ifdef MS_WIN32 - if (PyInt_Check(obj) || PyLong_Check(obj)) { + if (PyInt_Check(obj)) { /* We have to use MAKEINTRESOURCEA for Windows CE. Works on Windows as well, of course. */ @@ -2734,7 +2734,7 @@ CFuncPtr_FromDll(PyTypeObject *type, PyObject *args, PyObject *kwds) obj = PyObject_GetAttrString(dll, "_handle"); if (!obj) return NULL; - if (!PyInt_Check(obj) && !PyLong_Check(obj)) { + if (!PyInt_Check(obj)) { PyErr_SetString(PyExc_TypeError, "the _handle attribute of the second argument must be an integer"); Py_DECREF(obj); @@ -2859,8 +2859,7 @@ CFuncPtr_new(PyTypeObject *type, PyObject *args, PyObject *kwds) #endif if (1 == PyTuple_GET_SIZE(args) - && (PyInt_Check(PyTuple_GET_ITEM(args, 0)) - || PyLong_Check(PyTuple_GET_ITEM(args, 0)))) { + && (PyInt_Check(PyTuple_GET_ITEM(args, 0)))) { CDataObject *ob; void *ptr = PyLong_AsVoidPtr(PyTuple_GET_ITEM(args, 0)); if (ptr == NULL) diff --git a/Modules/_ctypes/cfield.c b/Modules/_ctypes/cfield.c index c36798a..534bb1e 100644 --- a/Modules/_ctypes/cfield.c +++ b/Modules/_ctypes/cfield.c @@ -329,7 +329,7 @@ static int get_long(PyObject *v, long *p) { long x; - if (!PyInt_Check(v) && !PyLong_Check(v)) { + if (!PyInt_Check(v)) { PyErr_Format(PyExc_TypeError, "int expected instead of %s instance", v->ob_type->tp_name); @@ -348,7 +348,7 @@ static int get_ulong(PyObject *v, unsigned long *p) { unsigned long x; - if (!PyInt_Check(v) && !PyLong_Check(v)) { + if (!PyInt_Check(v)) { PyErr_Format(PyExc_TypeError, "int expected instead of %s instance", v->ob_type->tp_name); @@ -369,7 +369,7 @@ static int get_longlong(PyObject *v, PY_LONG_LONG *p) { PY_LONG_LONG x; - if (!PyInt_Check(v) && !PyLong_Check(v)) { + if (!PyInt_Check(v)) { PyErr_Format(PyExc_TypeError, "int expected instead of %s instance", v->ob_type->tp_name); @@ -388,7 +388,7 @@ static int get_ulonglong(PyObject *v, unsigned PY_LONG_LONG *p) { unsigned PY_LONG_LONG x; - if (!PyInt_Check(v) && !PyLong_Check(v)) { + if (!PyInt_Check(v)) { PyErr_Format(PyExc_TypeError, "int expected instead of %s instance", v->ob_type->tp_name); @@ -1373,7 +1373,7 @@ z_set(void *ptr, PyObject *value, Py_ssize_t size) assert(PyBytes_Check(str)); *(char **)ptr = PyBytes_AS_STRING(str); return str; - } else if (PyInt_Check(value) || PyLong_Check(value)) { + } else if (PyInt_Check(value)) { #if SIZEOF_VOID_P == SIZEOF_LONG_LONG *(char **)ptr = (char *)PyInt_AsUnsignedLongLongMask(value); #else diff --git a/Modules/_sqlite/row.c b/Modules/_sqlite/row.c index b2f105a..2f3ba69 100644 --- a/Modules/_sqlite/row.c +++ b/Modules/_sqlite/row.c @@ -76,12 +76,7 @@ PyObject* pysqlite_row_subscript(pysqlite_Row* self, PyObject* idx) PyObject* item; - if (PyInt_Check(idx)) { - _idx = PyInt_AsLong(idx); - item = PyTuple_GetItem(self->data, _idx); - Py_XINCREF(item); - return item; - } else if (PyLong_Check(idx)) { + if (PyLong_Check(idx)) { _idx = PyLong_AsLong(idx); item = PyTuple_GetItem(self->data, _idx); Py_XINCREF(item); diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c index 9080c9b..1cc3cdd 100644 --- a/Modules/_sqlite/statement.c +++ b/Modules/_sqlite/statement.c @@ -80,9 +80,10 @@ int pysqlite_statement_create(pysqlite_Statement* self, pysqlite_Connection* con int pysqlite_statement_bind_parameter(pysqlite_Statement* self, int pos, PyObject* parameter) { int rc = SQLITE_OK; - long longval; #ifdef HAVE_LONG_LONG PY_LONG_LONG longlongval; +#else + long longval; #endif const char* buffer; char* string; @@ -91,14 +92,16 @@ int pysqlite_statement_bind_parameter(pysqlite_Statement* self, int pos, PyObjec if (parameter == Py_None) { rc = sqlite3_bind_null(self->st, pos); - } else if (PyInt_CheckExact(parameter)) { - longval = PyInt_AsLong(parameter); - rc = sqlite3_bind_int64(self->st, pos, (sqlite_int64)longval); #ifdef HAVE_LONG_LONG } else if (PyLong_Check(parameter)) { longlongval = PyLong_AsLongLong(parameter); /* in the overflow error case, longlongval is -1, and an exception is set */ rc = sqlite3_bind_int64(self->st, pos, (sqlite_int64)longlongval); +#else + } else if (PyLong_Check(parameter)) { + longval = PyLong_AsLong(parameter); + /* in the overflow error case, longval is -1, and an exception is set */ + rc = sqlite3_bind_int64(self->st, pos, (sqlite_int64)longval); #endif } else if (PyFloat_Check(parameter)) { rc = sqlite3_bind_double(self->st, pos, PyFloat_AsDouble(parameter)); diff --git a/Modules/cjkcodecs/multibytecodec.c b/Modules/cjkcodecs/multibytecodec.c index 4778efb..7ab3145 100644 --- a/Modules/cjkcodecs/multibytecodec.c +++ b/Modules/cjkcodecs/multibytecodec.c @@ -313,8 +313,7 @@ multibytecodec_encerror(MultibyteCodec *codec, if (!PyTuple_Check(retobj) || PyTuple_GET_SIZE(retobj) != 2 || !PyUnicode_Check((tobj = PyTuple_GET_ITEM(retobj, 0))) || - !(PyInt_Check(PyTuple_GET_ITEM(retobj, 1)) || - PyLong_Check(PyTuple_GET_ITEM(retobj, 1)))) { + !PyInt_Check(PyTuple_GET_ITEM(retobj, 1))) { PyErr_SetString(PyExc_TypeError, "encoding error handler must return " "(unicode, int) tuple"); @@ -433,8 +432,7 @@ multibytecodec_decerror(MultibyteCodec *codec, if (!PyTuple_Check(retobj) || PyTuple_GET_SIZE(retobj) != 2 || !PyUnicode_Check((retuni = PyTuple_GET_ITEM(retobj, 0))) || - !(PyInt_Check(PyTuple_GET_ITEM(retobj, 1)) || - PyLong_Check(PyTuple_GET_ITEM(retobj, 1)))) { + !PyInt_Check(PyTuple_GET_ITEM(retobj, 1))) { PyErr_SetString(PyExc_TypeError, "decoding error handler must return " "(unicode, int) tuple"); diff --git a/Objects/sliceobject.c b/Objects/sliceobject.c index d160b07..28b92d0 100644 --- a/Objects/sliceobject.c +++ b/Objects/sliceobject.c @@ -112,14 +112,14 @@ PySlice_GetIndices(PySliceObject *r, Py_ssize_t length, if (r->start == Py_None) { *start = *step < 0 ? length-1 : 0; } else { - if (!PyInt_Check(r->start) && !PyLong_Check(r->step)) return -1; + if (!PyInt_Check(r->start)) return -1; *start = PyInt_AsSsize_t(r->start); if (*start < 0) *start += length; } if (r->stop == Py_None) { *stop = *step < 0 ? -1 : length; } else { - if (!PyInt_Check(r->stop) && !PyLong_Check(r->step)) return -1; + if (!PyInt_Check(r->stop)) return -1; *stop = PyInt_AsSsize_t(r->stop); if (*stop < 0) *stop += length; } diff --git a/Python/getargs.c b/Python/getargs.c index 4bcc175..0b25d4b 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -696,9 +696,7 @@ convertsimple(PyObject *arg, const char **p_format, va_list *p_va, int flags, case 'k': { /* long sized bitfield */ unsigned long *p = va_arg(*p_va, unsigned long *); unsigned long ival; - if (PyInt_Check(arg)) - ival = PyInt_AsUnsignedLongMask(arg); - else if (PyLong_Check(arg)) + if (PyLong_Check(arg)) ival = PyLong_AsUnsignedLongMask(arg); else return converterr("integer", arg, msgbuf, bufsize); -- cgit v0.12