|
@@ -7,7 +7,7 @@ import time
|
|
|
from cpython.bytes cimport PyBytes_AsString
|
|
from cpython.bytes cimport PyBytes_AsString
|
|
|
from libc.stdint cimport uint8_t, uint32_t
|
|
from libc.stdint cimport uint8_t, uint32_t
|
|
|
from libc.stdlib cimport malloc, free
|
|
from libc.stdlib cimport malloc, free
|
|
|
-from libc.string cimport memcpy, memmove
|
|
|
|
|
|
|
+from libc.string cimport memcpy, memmove, memset
|
|
|
|
|
|
|
|
from ..constants import CH_DATA, CH_ALLOC, CH_HOLE, zeros
|
|
from ..constants import CH_DATA, CH_ALLOC, CH_HOLE, zeros
|
|
|
from .reader import FileReader, Chunk
|
|
from .reader import FileReader, Chunk
|
|
@@ -199,8 +199,8 @@ cdef class Chunker:
|
|
|
# Copy data from chunk to our buffer
|
|
# Copy data from chunk to our buffer
|
|
|
memcpy(self.data + self.position + self.remaining, <const unsigned char*>PyBytes_AsString(chunk.data), n)
|
|
memcpy(self.data + self.position + self.remaining, <const unsigned char*>PyBytes_AsString(chunk.data), n)
|
|
|
else:
|
|
else:
|
|
|
- # For holes, fill with zeros
|
|
|
|
|
- memcpy(self.data + self.position + self.remaining, <const unsigned char*>PyBytes_AsString(zeros[:n]), n)
|
|
|
|
|
|
|
+ # For holes, fill with zeros using memset
|
|
|
|
|
+ memset(self.data + self.position + self.remaining, 0, n)
|
|
|
|
|
|
|
|
self.remaining += n
|
|
self.remaining += n
|
|
|
self.bytes_read += n
|
|
self.bytes_read += n
|