diff options
-rw-r--r-- | msgpack/unpack.h | 10 | ||||
-rw-r--r-- | test/test_limits.py | 4 |
2 files changed, 3 insertions, 11 deletions
diff --git a/msgpack/unpack.h b/msgpack/unpack.h index 71142c6..24045d5 100644 --- a/msgpack/unpack.h +++ b/msgpack/unpack.h @@ -55,15 +55,7 @@ static inline int unpack_callback_uint8(unpack_user* u, uint8_t d, msgpack_unpac static inline int unpack_callback_uint32(unpack_user* u, uint32_t d, msgpack_unpack_object* o) { - PyObject *p; -#if UINT32_MAX > LONG_MAX - if (d > LONG_MAX) { - p = PyLong_FromUnsignedLong((unsigned long)d); - } else -#endif - { - p = PyInt_FromUnsignedLong((long)d); - } + PyObject *p = PyInt_FromSize_t((size_t)d); if (!p) return -1; *o = p; diff --git a/test/test_limits.py b/test/test_limits.py index da8cd2b..1cfa2d6 100644 --- a/test/test_limits.py +++ b/test/test_limits.py @@ -21,14 +21,14 @@ def test_integer(): def test_array_header(): packer = Packer() packer.pack_array_header(2**32-1) - with pytest.raises(ValueError): + with pytest.raises((OverflowError, ValueError)): packer.pack_array_header(2**32) def test_map_header(): packer = Packer() packer.pack_map_header(2**32-1) - with pytest.raises(ValueError): + with pytest.raises((OverflowError, ValueError)): packer.pack_array_header(2**32) |