// Creates a new user data object of specified size and returns it func (L *State) NewUserdata(size uintptr) unsafe.Pointer { return unsafe.Pointer(C.lua_newuserdata(L.s, C.size_t(size))) }
// Newuserdata. This function allocates a new block of memory with the given size, // pushes onto the stack a new full userdata with the block address, and returns this // address. // // Userdata represent C values in Lua. A full userdata represents a block of memory. It // is an object (like a table): you must create it, it can have its own metatable, and // you can detect when it is being collected. A full userdata is only equal to itself (under raw equality). // // When Lua collects a full userdata with a gc metamethod, Lua calls the metamethod and marks // the userdata as finalized. When this userdata is collected again then Lua frees its corresponding memory. func (this *State) Newuserdata() { C.lua_newuserdata(this.luastate, C.size_t(1)) }