update bytearray,lua

This commit is contained in:
MihailRis 2026-07-20 00:05:50 +03:00
parent b314578e5b
commit d55b494bb0

View file

@ -12,6 +12,8 @@ FFI.cdef[[
} bytearray_t;
]]
local free = FFI.C.free
local FFIBytearray
local bytearray_type
@ -31,7 +33,7 @@ local function malloc(size)
allocated_bytes = 0
end
return FFI.gc(raw, FFI.C.free)
return raw
end
local function grow_buffer(self, elems)
@ -40,6 +42,7 @@ local function grow_buffer(self, elems)
self.bytes = malloc(new_capacity)
FFI.copy(self.bytes, prev, self.size)
self.capacity = new_capacity
free(prev)
end
local function trim_buffer(self)
@ -51,6 +54,7 @@ local function trim_buffer(self)
self.bytes = malloc(size)
FFI.copy(self.bytes, prev, self.size)
self.capacity = size
free(prev)
end
local function count_elements(b)
@ -129,6 +133,7 @@ local function reserve(self, new_capacity)
self.bytes = malloc(new_capacity)
FFI.copy(self.bytes, prev, self.size)
self.capacity = new_capacity
free(prev)
end
local function get_capacity(self)
@ -187,7 +192,9 @@ local bytearray_mt = {
__len = function(self)
return tonumber(self.size)
end,
__gc = function(self) end,
__gc = function(self)
free(self.bytes)
end,
__ipairs = function(self)
local i = 0
return function()