Avoid unnecessary buffer copies

This commit is contained in:
Lucian Petrut
2026-09-09 14:27:30 +00:00
parent 94e63f96ad
commit e3948d2a45
2 changed files with 62 additions and 19 deletions
+2 -7
View File
@@ -331,14 +331,9 @@ class VixDiskLibHandle:
start_sector: First sector to read.
num_sectors: Number of sectors to read.
buf: Destination buffer (``get_buffer`` or a writable bytes-like).
Uncompressed NFC extra is received into this buffer.
"""
data = disk_handle.disk.read(start_sector, num_sectors)
if isinstance(buf, (bytearray, memoryview)):
if len(buf) < len(data):
raise RuntimeError(f"read buffer is {len(buf)} bytes, need {len(data)}")
buf[: len(data)] = data
return
ctypes.memmove(buf, data, len(data))
disk_handle.disk.readinto(start_sector, num_sectors, memoryview(buf))
def write(
self,