mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-04-01 01:16:52 +02:00
Fix stream unpacker broken.
This commit is contained in:
parent
686e8ca0f0
commit
dd18402737
@ -233,7 +233,9 @@ cdef class Unpacker(object):
|
|||||||
if self.buf:
|
if self.buf:
|
||||||
free(self.buf);
|
free(self.buf);
|
||||||
|
|
||||||
def __init__(self, file_like=None, int read_size=1024*1024):
|
def __init__(self, file_like=None, int read_size=0):
|
||||||
|
if read_size == 0:
|
||||||
|
read_size = 1024*1024
|
||||||
self.file_like = file_like
|
self.file_like = file_like
|
||||||
self.read_size = read_size
|
self.read_size = read_size
|
||||||
self.waiting_bytes = []
|
self.waiting_bytes = []
|
||||||
@ -309,6 +311,7 @@ cdef class Unpacker(object):
|
|||||||
self.fill_buffer()
|
self.fill_buffer()
|
||||||
ret = template_execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head)
|
ret = template_execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head)
|
||||||
if ret == 1:
|
if ret == 1:
|
||||||
|
template_init(&self.ctx)
|
||||||
return template_data(&self.ctx)
|
return template_data(&self.ctx)
|
||||||
elif ret == 0:
|
elif ret == 0:
|
||||||
if self.file_like is not None:
|
if self.file_like is not None:
|
||||||
@ -319,3 +322,10 @@ cdef class Unpacker(object):
|
|||||||
|
|
||||||
def __iter__(self):
|
def __iter__(self):
|
||||||
return UnpackIterator(self)
|
return UnpackIterator(self)
|
||||||
|
|
||||||
|
# for debug.
|
||||||
|
#def _buf(self):
|
||||||
|
# return PyString_FromStringAndSize(self.buf, self.buf_tail)
|
||||||
|
|
||||||
|
#def _off(self):
|
||||||
|
# return self.buf_head
|
||||||
|
Loading…
x
Reference in New Issue
Block a user