diff options
author | Benoit Germain <bnt.germain@gmail.com> | 2021-06-23 14:44:43 +0200 |
---|---|---|
committer | Benoit Germain <bnt.germain@gmail.com> | 2021-06-23 14:44:43 +0200 |
commit | 54e788bc121218f8f1a978ee136e4d0faa67370d (patch) | |
tree | abbb96bbe5d683aabc85ddfd803734550221db73 /deep_test/deep_test.c | |
parent | d1ef9b97e356805c622e4832ec76289bae391a6e (diff) | |
download | lanes-54e788bc121218f8f1a978ee136e4d0faa67370d.tar.gz lanes-54e788bc121218f8f1a978ee136e4d0faa67370d.tar.bz2 lanes-54e788bc121218f8f1a978ee136e4d0faa67370d.zip |
updated deep userdata unit test to expose issue #189
Diffstat (limited to 'deep_test/deep_test.c')
-rw-r--r-- | deep_test/deep_test.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/deep_test/deep_test.c b/deep_test/deep_test.c index 61c81c5..4bee7fe 100644 --- a/deep_test/deep_test.c +++ b/deep_test/deep_test.c | |||
@@ -35,6 +35,29 @@ static int deep_set( lua_State* L) | |||
35 | 35 | ||
36 | // ################################################################################################ | 36 | // ################################################################################################ |
37 | 37 | ||
38 | // won't actually do anything as deep userdata don't have uservalue slots | ||
39 | static int deep_setuv( lua_State* L) | ||
40 | { | ||
41 | struct s_MyDeepUserdata* self = luaG_todeep( L, deep_test_id, 1); | ||
42 | int uv = (int) luaL_optinteger( L, 2, 1); | ||
43 | lua_settop( L, 3); | ||
44 | lua_pushboolean( L, lua_setiuservalue( L, 1, uv) != 0); | ||
45 | return 1; | ||
46 | } | ||
47 | |||
48 | // ################################################################################################ | ||
49 | |||
50 | // won't actually do anything as deep userdata don't have uservalue slots | ||
51 | static int deep_getuv( lua_State* L) | ||
52 | { | ||
53 | struct s_MyDeepUserdata* self = luaG_todeep( L, deep_test_id, 1); | ||
54 | int uv = (int) luaL_optinteger( L, 2, 1); | ||
55 | lua_getiuservalue( L, 1, uv); | ||
56 | return 1; | ||
57 | } | ||
58 | |||
59 | // ################################################################################################ | ||
60 | |||
38 | static int deep_tostring( lua_State* L) | 61 | static int deep_tostring( lua_State* L) |
39 | { | 62 | { |
40 | struct s_MyDeepUserdata* self = luaG_todeep( L, deep_test_id, 1); | 63 | struct s_MyDeepUserdata* self = luaG_todeep( L, deep_test_id, 1); |
@@ -57,6 +80,8 @@ static luaL_Reg const deep_mt[] = | |||
57 | { "__tostring", deep_tostring}, | 80 | { "__tostring", deep_tostring}, |
58 | { "__gc", deep_gc}, | 81 | { "__gc", deep_gc}, |
59 | { "set", deep_set}, | 82 | { "set", deep_set}, |
83 | { "setuv", deep_setuv}, | ||
84 | { "getuv", deep_getuv}, | ||
60 | { NULL, NULL } | 85 | { NULL, NULL } |
61 | }; | 86 | }; |
62 | 87 | ||