diff options
author | INADA Naoki <songofacandy@gmail.com> | 2013-06-04 23:31:46 -0700 |
---|---|---|
committer | INADA Naoki <songofacandy@gmail.com> | 2013-06-04 23:31:46 -0700 |
commit | 2f6061cb4fa47efba022768d83ed6750030eec22 (patch) | |
tree | 8aba0db506a21618d86594f952e13435d9021ea4 | |
parent | d4bb86c0c8f5994b79b20b0e8c692f35cd389cdb (diff) | |
parent | e250b89920527d69e30566746a1ef12a2f43b25c (diff) | |
download | msgpack-python-2f6061cb4fa47efba022768d83ed6750030eec22.tar.gz |
Merge pull request #66 from yamt/fixes
some fixes and tests
-rw-r--r-- | msgpack/_unpacker.pyx | 4 | ||||
-rw-r--r-- | msgpack/unpack.h | 4 | ||||
-rw-r--r-- | test/test_pack.py | 5 |
3 files changed, 7 insertions, 6 deletions
diff --git a/msgpack/_unpacker.pyx b/msgpack/_unpacker.pyx index 9ff1085..1f4dd85 100644 --- a/msgpack/_unpacker.pyx +++ b/msgpack/_unpacker.pyx @@ -4,7 +4,7 @@ from cpython cimport * cdef extern from "Python.h": ctypedef struct PyObject - cdef int PyObject_AsReadBuffer(object o, const void* buff, Py_ssize_t* buf_len) except -1 + cdef int PyObject_AsReadBuffer(object o, const void** buff, Py_ssize_t* buf_len) except -1 from libc.stdlib cimport * from libc.string cimport * @@ -95,7 +95,7 @@ def unpackb(object packed, object object_hook=None, object list_hook=None, cdef char* cenc = NULL cdef char* cerr = NULL - PyObject_AsReadBuffer(packed, <const void*>&buf, &buf_len) + PyObject_AsReadBuffer(packed, <const void**>&buf, &buf_len) if encoding is not None: if isinstance(encoding, unicode): diff --git a/msgpack/unpack.h b/msgpack/unpack.h index fb13b4e..baeed1f 100644 --- a/msgpack/unpack.h +++ b/msgpack/unpack.h @@ -70,7 +70,7 @@ static inline int unpack_callback_uint64(unpack_user* u, uint64_t d, msgpack_unp { PyObject *p; if (d > LONG_MAX) { - p = PyLong_FromUnsignedLongLong((unsigned long)d); + p = PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG)d); } else { p = PyInt_FromLong((long)d); } @@ -103,7 +103,7 @@ static inline int unpack_callback_int64(unpack_user* u, int64_t d, msgpack_unpac { PyObject *p; if (d > LONG_MAX || d < LONG_MIN) { - p = PyLong_FromLongLong((unsigned long)d); + p = PyLong_FromLongLong((unsigned PY_LONG_LONG)d); } else { p = PyInt_FromLong((long)d); } diff --git a/test/test_pack.py b/test/test_pack.py index 3225f41..9dc5ada 100644 --- a/test/test_pack.py +++ b/test/test_pack.py @@ -12,11 +12,12 @@ from io import BytesIO def check(data, use_list=False): re = unpackb(packb(data), use_list=use_list) assert re == data + assert type(re) == type(data) def testPack(): test_data = [ - 0, 1, 127, 128, 255, 256, 65535, 65536, - -1, -32, -33, -128, -129, -32768, -32769, + 0, 1, 127, 128, 255, 256, 65535, 65536, 4294967295, 4294967296, + -1, -32, -33, -128, -129, -32768, -32769, -4294967296, -4294967297, 1.0, b"", b"a", b"a"*31, b"a"*32, None, True, False, |