mirror of
https://github.com/msgpack/msgpack-python.git
synced 2025-10-28 08:04:12 +00:00
parent
60ef3879d7
commit
d9ec8fc905
2 changed files with 12 additions and 6 deletions
|
|
@ -289,11 +289,13 @@ cdef class Packer(object):
|
||||||
|
|
||||||
cpdef pack(self, object obj):
|
cpdef pack(self, object obj):
|
||||||
cdef int ret
|
cdef int ret
|
||||||
|
try:
|
||||||
ret = self._pack(obj, DEFAULT_RECURSE_LIMIT)
|
ret = self._pack(obj, DEFAULT_RECURSE_LIMIT)
|
||||||
if ret == -1:
|
except:
|
||||||
raise MemoryError
|
self.pk.length = 0
|
||||||
elif ret: # should not happen.
|
raise
|
||||||
raise TypeError
|
if ret: # should not happen.
|
||||||
|
raise RuntimeError("internal error")
|
||||||
if self.autoreset:
|
if self.autoreset:
|
||||||
buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length)
|
buf = PyBytes_FromStringAndSize(self.pk.buf, self.pk.length)
|
||||||
self.pk.length = 0
|
self.pk.length = 0
|
||||||
|
|
|
||||||
|
|
@ -848,7 +848,11 @@ class Packer(object):
|
||||||
raise TypeError("Cannot serialize %r" % (obj, ))
|
raise TypeError("Cannot serialize %r" % (obj, ))
|
||||||
|
|
||||||
def pack(self, obj):
|
def pack(self, obj):
|
||||||
|
try:
|
||||||
self._pack(obj)
|
self._pack(obj)
|
||||||
|
except:
|
||||||
|
self._buffer = StringIO() # force reset
|
||||||
|
raise
|
||||||
ret = self._buffer.getvalue()
|
ret = self._buffer.getvalue()
|
||||||
if self._autoreset:
|
if self._autoreset:
|
||||||
self._buffer = StringIO()
|
self._buffer = StringIO()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue