Merge pull request #165 from frsyuki/fix-string-too-large-message

Fix wrong 'dict is too large' on unicode string
This commit is contained in:
INADA Naoki 2016-01-12 10:26:11 +09:00
commit 151a16d216

View file

@ -174,11 +174,11 @@ cdef class Packer(object):
o = PyUnicode_AsEncodedString(o, self.encoding, self.unicode_errors) o = PyUnicode_AsEncodedString(o, self.encoding, self.unicode_errors)
L = len(o) L = len(o)
if L > (2**32)-1: if L > (2**32)-1:
raise ValueError("dict is too large") raise ValueError("unicode string is too large")
rawval = o rawval = o
ret = msgpack_pack_raw(&self.pk, len(o)) ret = msgpack_pack_raw(&self.pk, L)
if ret == 0: if ret == 0:
ret = msgpack_pack_raw_body(&self.pk, rawval, len(o)) ret = msgpack_pack_raw_body(&self.pk, rawval, L)
elif PyDict_CheckExact(o): elif PyDict_CheckExact(o):
d = <dict>o d = <dict>o
L = len(d) L = len(d)