summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorINADA Naoki <songofacandy@gmail.com>2013-06-04 23:31:46 -0700
committerINADA Naoki <songofacandy@gmail.com>2013-06-04 23:31:46 -0700
commit2f6061cb4fa47efba022768d83ed6750030eec22 (patch)
tree8aba0db506a21618d86594f952e13435d9021ea4
parentd4bb86c0c8f5994b79b20b0e8c692f35cd389cdb (diff)
parente250b89920527d69e30566746a1ef12a2f43b25c (diff)
downloadmsgpack-python-2f6061cb4fa47efba022768d83ed6750030eec22.tar.gz
Merge pull request #66 from yamt/fixes
some fixes and tests
-rw-r--r--msgpack/_unpacker.pyx4
-rw-r--r--msgpack/unpack.h4
-rw-r--r--test/test_pack.py5
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,