diff options
author | Guido van Rossum <guido@python.org> | 2007-01-15 00:31:49 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2007-01-15 00:31:49 (GMT) |
commit | 523d4f942c108db6fcd94a26d1cfd1d579d49426 (patch) | |
tree | 95c7cc7634cb729d87b3161bfb42fde2e413082f | |
parent | f4100005ae552ab4d5112b270a45c6091c30045e (diff) | |
download | cpython-523d4f942c108db6fcd94a26d1cfd1d579d49426.zip cpython-523d4f942c108db6fcd94a26d1cfd1d579d49426.tar.gz cpython-523d4f942c108db6fcd94a26d1cfd1d579d49426.tar.bz2 |
Fix the sqlite failure -- it was the usual, PyInt_Check -> PyInt_CheckExact.
Clarify some OverflowError messages from the various PyLong_AsXXX methods.
-rw-r--r-- | Misc/NEWS | 6 | ||||
-rw-r--r-- | Modules/_sqlite/statement.c | 2 | ||||
-rw-r--r-- | Objects/longobject.c | 10 |
3 files changed, 9 insertions, 9 deletions
@@ -36,9 +36,9 @@ TO DO Core and Builtins ----------------- -- Int/Long unification is halfway complete. There are a few broken tests, - the 'long' built-in hasn't been removed yet, and literals with trailing - 'L' or 'l' are still recognized. Performance may be sub-optimal. +- Int/Long unification is halfway complete. The 'long' built-in type + hasn't been removed yet, and literals with trailing 'L' or 'l' are + still recognized. Performance may be sub-optimal. - 'except E, V' must now be spelled as 'except E as V' and deletes V at the end of the except clause; V must be a simple name. diff --git a/Modules/_sqlite/statement.c b/Modules/_sqlite/statement.c index 4e45636..7763d10 100644 --- a/Modules/_sqlite/statement.c +++ b/Modules/_sqlite/statement.c @@ -100,7 +100,7 @@ int statement_bind_parameter(Statement* self, int pos, PyObject* parameter) if (parameter == Py_None) { rc = sqlite3_bind_null(self->st, pos); - } else if (PyInt_Check(parameter)) { + } else if (PyInt_CheckExact(parameter)) { longval = PyInt_AsLong(parameter); rc = sqlite3_bind_int64(self->st, pos, (sqlite_int64)longval); #ifdef HAVE_LONG_LONG diff --git a/Objects/longobject.c b/Objects/longobject.c index 03d22f5..250215c 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -364,7 +364,7 @@ PyLong_AsLong(PyObject *vv) Py_DECREF(vv); } PyErr_SetString(PyExc_OverflowError, - "int too large to convert to int"); + "Python int too large to convert to C long"); return -1; } @@ -427,7 +427,7 @@ PyLong_AsSsize_t(PyObject *vv) { overflow: PyErr_SetString(PyExc_OverflowError, - "int too large to convert to "); + "Python int too large to convert to C ssize_t"); return -1; } @@ -462,7 +462,7 @@ PyLong_AsUnsignedLong(PyObject *vv) x = (x << SHIFT) + v->ob_digit[i]; if ((x >> SHIFT) != prev) { PyErr_SetString(PyExc_OverflowError, - "int too large to convert"); + "python int too large to convert to C unsigned long"); return (unsigned long) -1; } } @@ -500,7 +500,7 @@ PyLong_AsSize_t(PyObject *vv) x = (x << SHIFT) + v->ob_digit[i]; if ((x >> SHIFT) != prev) { PyErr_SetString(PyExc_OverflowError, - "int too large to convert"); + "Python int too large to convert to C size_t"); return (unsigned long) -1; } } @@ -943,7 +943,7 @@ PyLong_AsDouble(PyObject *vv) overflow: PyErr_SetString(PyExc_OverflowError, - "int too large to convert to float"); + "Python int too large to convert to C double"); return -1.0; } |