From 1ade910fa1bcd374db0d7df2850c7e9d6eae73e7 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Sat, 12 Apr 2025 13:49:31 +0300 Subject: [PATCH] fix Bytearray.insert, Bytearray.remove --- dev/tests/bytearray.lua | 9 +++++++++ res/modules/internal/bytearray.lua | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/dev/tests/bytearray.lua b/dev/tests/bytearray.lua index 79d8a89b..7b407cba 100644 --- a/dev/tests/bytearray.lua +++ b/dev/tests/bytearray.lua @@ -13,3 +13,12 @@ end Bytearray.remove(arr, 2) assert(#arr == 9) + +Bytearray.insert(arr, {5, 3, 6}) + +assert(#arr == 12) +Bytearray.insert(arr, 2, 8) +assert(#arr == 13) +for i=1,10 do + assert(arr[i] == 10 - i) +end diff --git a/res/modules/internal/bytearray.lua b/res/modules/internal/bytearray.lua index fabfaee7..e319751b 100644 --- a/res/modules/internal/bytearray.lua +++ b/res/modules/internal/bytearray.lua @@ -48,7 +48,8 @@ local function append(self, b) end local function insert(self, index, b) - if index == nil then + if b == nil then + b = index index = self.size + 1 end if index <= 0 or index > self.size + 1 then @@ -81,7 +82,7 @@ local function remove(self, index, elems) if index + elems > self.size then elems = self.size - index + 1 end - for i=index, self.size - elems do + for i=index - 1, self.size - elems - 1 do self.bytes[i] = self.bytes[i + elems] end self.size = self.size - elems