diff --git a/src/logic/scripting/lua/lua_custom_types.cpp b/src/logic/scripting/lua/lua_custom_types.cpp index 4571f32a..91d44745 100644 --- a/src/logic/scripting/lua/lua_custom_types.cpp +++ b/src/logic/scripting/lua/lua_custom_types.cpp @@ -8,7 +8,11 @@ using namespace lua; Bytearray::Bytearray(size_t capacity) - : buffer(std::make_unique(capacity)), capacity(capacity) { + : buffer(capacity) { + buffer.resize(capacity); +} + +Bytearray::Bytearray(std::vector buffer) : buffer(std::move(buffer)) { } Bytearray::~Bytearray() { diff --git a/src/logic/scripting/lua/lua_custom_types.hpp b/src/logic/scripting/lua/lua_custom_types.hpp index e095e8a3..4ea4960d 100644 --- a/src/logic/scripting/lua/lua_custom_types.hpp +++ b/src/logic/scripting/lua/lua_custom_types.hpp @@ -4,7 +4,7 @@ #include "lua_commons.hpp" #include -#include +#include namespace lua { class Userdata { @@ -14,10 +14,10 @@ namespace lua { }; class Bytearray : public Userdata { - std::unique_ptr buffer; - size_t capacity; + std::vector buffer; public: Bytearray(size_t capacity); + Bytearray(std::vector buffer); virtual ~Bytearray(); inline ubyte& operator[](size_t index) { @@ -29,7 +29,7 @@ namespace lua { } inline size_t size() const { - return capacity; + return buffer.size(); } static int createMetatable(lua::State*); inline static std::string TYPENAME = "bytearray";