Skip to content

Commit 50b7875

Browse files
committed
Fix redirect_messages() to call _ensure_first_buf() on a non-empty buf
1 parent 6079e5b commit 50b7875

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

buffer.pyx

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,11 @@ cdef class ReadBuffer:
256256
self._bufs_len += 1
257257

258258
cdef inline _ensure_first_buf(self):
259-
if self._len0 == 0:
260-
raise exceptions.BufferError('empty first buffer')
259+
if PG_DEBUG:
260+
if self._len0 == 0:
261+
raise exceptions.BufferError('empty first buffer')
262+
if self._length == 0:
263+
raise exceptions.BufferError('empty buffer')
261264

262265
if self._pos0 == self._len0:
263266
self._switch_to_next_buf()
@@ -597,8 +600,12 @@ cdef class ReadBuffer:
597600
else:
598601
buf.write_bytes(self.consume_message())
599602

603+
if self._length > 0:
604+
self._ensure_first_buf()
605+
else:
606+
return
607+
600608
# Fast path: exhaust buf0 as efficiently as possible.
601-
self._ensure_first_buf()
602609
if self._pos0 + 5 <= self._len0:
603610
cbuf = cpython.PyBytes_AS_STRING(self._buf0)
604611
new_pos0 = self._pos0

0 commit comments

Comments
 (0)