Skip to content

Commit 18215b0

Browse files
committed
Unpacker.feed() uses new buffer interface.
1 parent 0faa1bb commit 18215b0

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

msgpack/_unpacker.pyx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,13 +254,15 @@ cdef class Unpacker(object):
254254

255255
def feed(self, object next_bytes):
256256
"""Append `next_bytes` to internal buffer."""
257-
cdef char* buf
258-
cdef Py_ssize_t buf_len
257+
cdef Py_buffer pybuff
259258
if self.file_like is not None:
260259
raise AssertionError(
261260
"unpacker.feed() is not be able to use with `file_like`.")
262-
PyObject_AsReadBuffer(next_bytes, <const_void_ptr*>&buf, &buf_len)
263-
self.append_buffer(buf, buf_len)
261+
PyObject_GetBuffer(next_bytes, &pybuff, PyBUF_SIMPLE)
262+
try:
263+
self.append_buffer(<char*>pybuff.buf, pybuff.len)
264+
finally:
265+
PyBuffer_Release(&pybuff)
264266

265267
cdef append_buffer(self, void* _buf, Py_ssize_t _buf_len):
266268
cdef:

0 commit comments

Comments
 (0)