fix .offset

This commit is contained in:
kbkpbot 2025-08-18 22:08:49 +08:00
parent cbb12a9369
commit 5cb1468eab
2 changed files with 2 additions and 0 deletions

View file

@ -549,6 +549,7 @@ pub fn (mut a array) shift() voidptr {
unsafe { unsafe {
a.data = &u8(a.data) + u64(a.element_size) a.data = &u8(a.data) + u64(a.element_size)
} }
a.offset += a.element_size
a.len-- a.len--
a.cap-- a.cap--
return first_elem return first_elem

View file

@ -125,6 +125,7 @@ fn (mut a array) ensure_cap_noscan(required int) {
unsafe { vmemcpy(new_data, a.data, u64(a.len) * u64(a.element_size)) } unsafe { vmemcpy(new_data, a.data, u64(a.len) * u64(a.element_size)) }
// TODO: the old data may be leaked when no GC is used (ref-counting?) // TODO: the old data may be leaked when no GC is used (ref-counting?)
} }
a.offset += a.element_size
a.data = new_data a.data = new_data
a.offset = 0 a.offset = 0
a.cap = int(cap) a.cap = int(cap)