Skip to content

Commit f399a4e

Browse files
committed
Fill up entire buffer
1 parent 772fce0 commit f399a4e

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/isal/isal_zlibmodule.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1465,9 +1465,11 @@ IGzipReader_read_into_buffer(IGzipReader *self, uint8_t *out_buffer, size_t out_
14651465
size_t current_bytes_written = self->state.next_out - out_buffer;
14661466
bytes_written += current_bytes_written;
14671467
self->_pos += current_bytes_written;
1468+
out_buffer = self->state.next_out;
1469+
out_buffer_size = self->state.avail_out;
14681470
current_pos = self->state.next_in;
14691471
if (!(self->state.block_state == ISAL_BLOCK_FINISH)) {
1470-
if (bytes_written == 0) {
1472+
if (self->state.avail_out > 0) {
14711473
break;
14721474
}
14731475
self->current_pos = current_pos;
@@ -1476,8 +1478,6 @@ IGzipReader_read_into_buffer(IGzipReader *self, uint8_t *out_buffer, size_t out_
14761478
current_pos -= bitbuffer_size(&self->state);
14771479
// Block done check trailer.
14781480
self->stream_phase = IGZIPREADER_TRAILER;
1479-
self->current_pos = current_pos;
1480-
return bytes_written;
14811481
case IGZIPREADER_TRAILER:
14821482
if (buffer_end - current_pos < 8) {
14831483
break;
@@ -1520,7 +1520,8 @@ IGzipReader_read_into_buffer(IGzipReader *self, uint8_t *out_buffer, size_t out_
15201520
if (self->all_bytes_read) {
15211521
if (self->stream_phase == IGZIPREADER_NULL_BYTES) {
15221522
self->_size = self->_pos;
1523-
return 0;
1523+
self->current_pos = current_pos;
1524+
return bytes_written;
15241525
}
15251526
PyErr_SetString(PyExc_EOFError, EOF_MESSAGE);
15261527
return -1;

0 commit comments

Comments
 (0)