diff --git a/src/modules/data/wrap_ByteData.cpp b/src/modules/data/wrap_ByteData.cpp index 446f62214..ed0c0d35c 100644 --- a/src/modules/data/wrap_ByteData.cpp +++ b/src/modules/data/wrap_ByteData.cpp @@ -31,8 +31,19 @@ ByteData *luax_checkbytedata(lua_State *L, int idx) return luax_checktype(L, idx); } +int w_ByteData_clone(lua_State *L) +{ + ByteData *t = luax_checkbytedata(L, 1); + ByteData *c = nullptr; + luax_catchexcept(L, [&](){ c = t->clone(); }); + luax_pushtype(L, c); + c->release(); + return 1; +} + static const luaL_Reg w_ByteData_functions[] = { + { "clone", w_ByteData_clone }, { 0, 0 } }; diff --git a/src/modules/data/wrap_DataView.cpp b/src/modules/data/wrap_DataView.cpp index 9aec29d7c..e41826b38 100644 --- a/src/modules/data/wrap_DataView.cpp +++ b/src/modules/data/wrap_DataView.cpp @@ -26,13 +26,24 @@ namespace love namespace data { -DataView *luax_checkdataView(lua_State *L, int idx) +DataView *luax_checkdataview(lua_State *L, int idx) { return luax_checktype(L, idx); } +int w_DataView_clone(lua_State *L) +{ + DataView *t = luax_checkdataview(L, 1); + DataView *c = nullptr; + luax_catchexcept(L, [&](){ c = t->clone(); }); + luax_pushtype(L, c); + c->release(); + return 1; +} + static const luaL_Reg w_DataView_functions[] = { + { "clone", w_DataView_clone }, { 0, 0 } };