reraising ValueError from unpack.h as UnpackValueError
This commit is contained in:
parent
d44063119b
commit
1183eff688
|
@ -397,24 +397,27 @@ cdef class Unpacker(object):
|
||||||
else:
|
else:
|
||||||
raise OutOfData("No more data to unpack.")
|
raise OutOfData("No more data to unpack.")
|
||||||
|
|
||||||
ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head)
|
try:
|
||||||
if write_bytes is not None:
|
ret = execute(&self.ctx, self.buf, self.buf_tail, &self.buf_head)
|
||||||
write_bytes(PyBytes_FromStringAndSize(self.buf + prev_head, self.buf_head - prev_head))
|
if write_bytes is not None:
|
||||||
|
write_bytes(PyBytes_FromStringAndSize(self.buf + prev_head, self.buf_head - prev_head))
|
||||||
|
|
||||||
if ret == 1:
|
if ret == 1:
|
||||||
obj = unpack_data(&self.ctx)
|
obj = unpack_data(&self.ctx)
|
||||||
unpack_init(&self.ctx)
|
unpack_init(&self.ctx)
|
||||||
return obj
|
return obj
|
||||||
elif ret == 0:
|
elif ret == 0:
|
||||||
if self.file_like is not None:
|
if self.file_like is not None:
|
||||||
self.read_from_file()
|
self.read_from_file()
|
||||||
continue
|
continue
|
||||||
if iter:
|
if iter:
|
||||||
raise StopIteration("No more data to unpack.")
|
raise StopIteration("No more data to unpack.")
|
||||||
|
else:
|
||||||
|
raise OutOfData("No more data to unpack.")
|
||||||
else:
|
else:
|
||||||
raise OutOfData("No more data to unpack.")
|
raise UnpackValueError("Unpack failed: error = %d" % (ret,))
|
||||||
else:
|
except ValueError as e:
|
||||||
raise ValueError("Unpack failed: error = %d" % (ret,))
|
raise UnpackValueError(e)
|
||||||
|
|
||||||
def read_bytes(self, Py_ssize_t nbytes):
|
def read_bytes(self, Py_ssize_t nbytes):
|
||||||
"""Read a specified number of raw bytes from the stream"""
|
"""Read a specified number of raw bytes from the stream"""
|
||||||
|
|
Loading…
Reference in New Issue