py/reader: Make mem reader support MP_READER_MEMMAP.

Signed-off-by: Damien George <damien@micropython.org>
pull/8381/head
Damien George 2024-02-22 18:41:52 +11:00
rodzic 7f67ee7ccc
commit 22f3f683a6
1 zmienionych plików z 6 dodań i 1 usunięć

Wyświetl plik

@ -52,11 +52,16 @@ static intptr_t mp_reader_mem_ioctl(void *data, uintptr_t request, uintptr_t arg
mp_reader_mem_t *reader = (mp_reader_mem_t *)data;
if (request == MP_READER_CLOSE) {
if (reader->free_len > 0) {
if (reader->free_len > 0 && reader->free_len != (size_t)-1) {
m_del(char, (char *)reader->beg, reader->free_len);
}
m_del_obj(mp_reader_mem_t, reader);
return 0;
} else if (request == MP_READER_MEMMAP && reader->free_len == (size_t)-1) {
mp_reader_ioctl_memmap_t *memmap = (mp_reader_ioctl_memmap_t *)arg;
memmap->ptr = reader->cur;
reader->cur += memmap->len;
return 0;
}
return -MP_EINVAL;