Commit c5e74dc3 authored by Jim Fulton's avatar Jim Fulton

Bug fixed:

When an integer too large to fit in a 32-bit integer was provided as
  a 32-bit-integer BTree key or value on 64-bit machines, an
  OverflowError was raised. Now a TypeError is raised.
parent 0cf1f7ce
......@@ -25,7 +25,7 @@
if (PyInt_Check(ARG)) { \
long vcopy = PyInt_AS_LONG(ARG); \
if ((int)vcopy != vcopy) { \
PyErr_SetObject(PyExc_OverflowError, ARG); \
PyErr_SetString(PyExc_TypeError, "integer out of range"); \
(STATUS)=0; (TARGET)=0; \
} \
else TARGET = vcopy; \
......
......@@ -24,7 +24,7 @@
if (PyInt_Check(ARG)) { \
long vcopy = PyInt_AS_LONG(ARG); \
if ((int)vcopy != vcopy) { \
PyErr_SetObject(PyExc_OverflowError, ARG); \
PyErr_SetString(PyExc_TypeError, "integer out of range"); \
(STATUS)=0; (TARGET)=0; \
} \
else TARGET = vcopy; \
......
......@@ -1814,8 +1814,8 @@ class IIBTreeTest(BTreeTests):
i = int(i)
try:
b[i] = 0
except (OverflowError, TypeError), v:
self.assertRaises(v.__class__, b.__setitem__, 0, i)
except TypeError:
self.assertRaises(TypeError, b.__setitem__, 0, i)
else:
good.add(i)
b[0] = i
......@@ -1953,13 +1953,8 @@ class FamilyTest(TestCase):
# the characteristics change to match the 64 bit version, please
# feel free to change.
big = BTrees.family32.maxint + 1
if isinstance(big, long):
self.assertRaises(TypeError, s.insert, big)
self.assertRaises(TypeError, s.insert, BTrees.family32.minint - 1)
else: # 64 bit Python
self.assertRaises(OverflowError, s.insert, big)
self.assertRaises(OverflowError, s.insert,
BTrees.family32.minint - 1)
self.check_pickling(BTrees.family32)
def test64(self):
......
......@@ -2,6 +2,16 @@
Change History
================
3.10.0b4 (2010-07-15)
=====================
Bugs fixed
----------
- When an integer too large to fit in a 32-bit integer was provided as
a 32-bit-integer BTree key or value on 64-bit machines, an
OverflowError was raised. Now a TypeError is raised.
3.10.0b3 (2010-07-15)
=====================
......
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