From 3f68fc1fc4fce39328a570253583d9a796779d7d Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sun, 8 Feb 2026 15:59:47 +0300 Subject: [PATCH 1/4] fix bytearray view classes --- res/modules/internal/bytearray.lua | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/res/modules/internal/bytearray.lua b/res/modules/internal/bytearray.lua index c292d6a81..f64bfddb6 100644 --- a/res/modules/internal/bytearray.lua +++ b/res/modules/internal/bytearray.lua @@ -231,44 +231,45 @@ local function FFIBytearray_as_string(bytes) end local function create_FFIview_class(name, typename, typesize) - local FFIU16view_mt = { + local ptrtype = typename .. "*" + local FFIview_mt = { __index = function(self, key) - if key <= 0 or key > self.size then + if key == 'size' then + return self.bytes.size / typesize + end + if key <= 0 or key > self.bytes.size / typesize then return end - return self.ptr[key - 1] + local ptr = FFI.cast(ptrtype, self.bytes.bytes) + return ptr[key - 1] end, __newindex = function(self, key, value) - if key == self.size + 1 then - return append(self, value) - elseif key <= 0 or key > self.size then + if key <= 0 or key > self.bytes.size / typesize then return end - self.ptr[key - 1] = value + local ptr = FFI.cast(ptrtype, self.bytes.bytes) + ptr[key - 1] = value end, __len = function(self) - return self.size + return self.bytes.size / typesize end, __tostring = function(self) - return string.format(name .. "[%s]{...}", tonumber(self.size)) + return string.format(name .. "[%s]{...}", tonumber(self.bytes.size / typesize)) end, __ipairs = function(self) local i = 0 return function() i = i + 1 - if i <= self.size then + if i <= self.bytes.size / typesize then return i, self.ptr[i - 1] end end end } return function (bytes) - local ptr = FFI.cast(typename .. "*", bytes.bytes) local x = setmetatable({ bytes=bytes, - ptr=ptr, - size=math.floor(bytes.size / typesize), - }, FFIU16view_mt) + }, FFIview_mt) return x end end From 4bfc1de5e23c34fb9ecc3a2b2f77333b68dda7d6 Mon Sep 17 00:00:00 2001 From: Artem Date: Sun, 8 Feb 2026 18:50:43 +0300 Subject: [PATCH 2/4] fix stdlib.lua --- res/scripts/stdlib.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/scripts/stdlib.lua b/res/scripts/stdlib.lua index 683f27e8a..c26db1ac6 100644 --- a/res/scripts/stdlib.lua +++ b/res/scripts/stdlib.lua @@ -519,7 +519,7 @@ audio.__reset_fetch_buffer = nil core.get_core_token = audio.input.__get_core_token local function __vc__process_post_runnables() - if #__post_runnables then + if #__post_runnables > 0 then for _, func in ipairs(__post_runnables) do local status, result = xpcall(func, __vc__error) if not status then From 2daadf79f30e445eb427c791f115decf42bdb8e7 Mon Sep 17 00:00:00 2001 From: Artem Date: Sun, 8 Feb 2026 19:02:24 +0300 Subject: [PATCH 3/4] fix events.lua --- res/modules/internal/events.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/modules/internal/events.lua b/res/modules/internal/events.lua index a0cd82762..98ff780f0 100644 --- a/res/modules/internal/events.lua +++ b/res/modules/internal/events.lua @@ -45,7 +45,7 @@ function events.emit(event, ...) for _, func in ipairs(handlers) do local status, newres = xpcall(func, __vc__error, ...) if not status then - debug.error("error in event ("..event..") handler: "..newres) + debug.error("error in event ("..event..") handler"..(newres and (": "..tostring(newres)) or "")) else result = result or newres end From 4809003aa8af28ed04d78a396f32580ee5506c39 Mon Sep 17 00:00:00 2001 From: Artem Date: Sun, 8 Feb 2026 19:23:52 +0300 Subject: [PATCH 4/4] fix io_stream.write_line --- res/modules/io_stream.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/modules/io_stream.lua b/res/modules/io_stream.lua index 185a29c26..15ba85d12 100644 --- a/res/modules/io_stream.lua +++ b/res/modules/io_stream.lua @@ -259,7 +259,7 @@ function io_stream:read_line() end function io_stream:write_line(str) - self:__write(utf8.tobytes(str .. LF)) + self:__write(utf8.tobytes(str .. "\n")) end function io_stream:read(arg, useTable)