diff --git a/res/scripts/stdmin.lua b/res/scripts/stdmin.lua index 06c86832..634d4c39 100644 --- a/res/scripts/stdmin.lua +++ b/res/scripts/stdmin.lua @@ -3,6 +3,23 @@ local canvas_ffi_buffer local canvas_ffi_buffer_size = 0 +local ipairs_mt_supported = false +for i, _ in ipairs(setmetatable({l={1}}, { + __ipairs=function(self) return ipairs(self.l) end})) do + ipairs_mt_supported = true +end + +if not ipairs_mt_supported then + local raw_ipairs = ipairs + ipairs = function(t) + local metatable = getmetatable(t) + if metatable and metatable.__ipairs then + return metatable.__ipairs(t) + end + return raw_ipairs(t) + end +end + function __vc_Canvas_set_data(self, data) if type(data) == "cdata" then self:_set_data(tostring(ffi.cast("uintptr_t", data)))