diff options
Diffstat (limited to '')
-rw-r--r-- | deep_test/deep_test.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/deep_test/deep_test.c b/deep_test/deep_test.c index a725902..cb89741 100644 --- a/deep_test/deep_test.c +++ b/deep_test/deep_test.c | |||
@@ -1,5 +1,6 @@ | |||
1 | #include <malloc.h> | 1 | #include <malloc.h> |
2 | #include <memory.h> | 2 | #include <memory.h> |
3 | #include <assert.h> | ||
3 | 4 | ||
4 | #include "lua.h" | 5 | #include "lua.h" |
5 | #include "lualib.h" | 6 | #include "lualib.h" |
@@ -196,18 +197,12 @@ static int clonable_lanesclone( lua_State* L) | |||
196 | { | 197 | { |
197 | switch( lua_gettop( L)) | 198 | switch( lua_gettop( L)) |
198 | { | 199 | { |
199 | case 1: | 200 | case 3: |
200 | { | ||
201 | // in case we need it to compute the amount of memory we need | ||
202 | struct s_MyClonableUserdata* self = lua_touserdata( L, 1); | ||
203 | lua_pushinteger( L, sizeof( struct s_MyClonableUserdata)); | ||
204 | } | ||
205 | return 1; | ||
206 | |||
207 | case 2: | ||
208 | { | 201 | { |
209 | struct s_MyClonableUserdata* self = lua_touserdata( L, 1); | 202 | struct s_MyClonableUserdata* self = lua_touserdata( L, 1); |
210 | struct s_MyClonableUserdata* from = lua_touserdata( L, 2); | 203 | struct s_MyClonableUserdata* from = lua_touserdata( L, 2); |
204 | size_t len = lua_tointeger( L, 3); | ||
205 | assert( len == sizeof(struct s_MyClonableUserdata)); | ||
211 | *self = *from; | 206 | *self = *from; |
212 | } | 207 | } |
213 | return 0; | 208 | return 0; |