diff options
author | Benoit Germain <bnt.germain@gmail.com> | 2018-11-15 11:20:14 +0100 |
---|---|---|
committer | Benoit Germain <bnt.germain@gmail.com> | 2018-11-15 11:20:14 +0100 |
commit | 01f83215a2ad235fbf306f591c6c0547b1bb7047 (patch) | |
tree | 51d1edff1c3f684bac388c64d91ee30d8f6fbbf2 /deep_test | |
parent | 55acf8e19728ac39581c35f1324debf9449bd185 (diff) | |
download | lanes-01f83215a2ad235fbf306f591c6c0547b1bb7047.tar.gz lanes-01f83215a2ad235fbf306f591c6c0547b1bb7047.tar.bz2 lanes-01f83215a2ad235fbf306f591c6c0547b1bb7047.zip |
Deep userdata must embed DeepPrelude to save an allocation (also changes Deep protocol)
Diffstat (limited to 'deep_test')
-rw-r--r-- | deep_test/deep_test.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/deep_test/deep_test.c b/deep_test/deep_test.c index 4aac586..7edd33f 100644 --- a/deep_test/deep_test.c +++ b/deep_test/deep_test.c | |||
@@ -17,6 +17,7 @@ | |||
17 | 17 | ||
18 | struct s_MyDeepUserdata | 18 | struct s_MyDeepUserdata |
19 | { | 19 | { |
20 | DeepPrelude prelude; // Deep userdata MUST start with this header | ||
20 | lua_Integer val; | 21 | lua_Integer val; |
21 | }; | 22 | }; |
22 | static void* deep_test_id( lua_State* L, enum eDeepOp op_); | 23 | static void* deep_test_id( lua_State* L, enum eDeepOp op_); |
@@ -67,6 +68,7 @@ static void* deep_test_id( lua_State* L, enum eDeepOp op_) | |||
67 | case eDO_new: | 68 | case eDO_new: |
68 | { | 69 | { |
69 | struct s_MyDeepUserdata* deep_test = (struct s_MyDeepUserdata*) malloc( sizeof(struct s_MyDeepUserdata)); | 70 | struct s_MyDeepUserdata* deep_test = (struct s_MyDeepUserdata*) malloc( sizeof(struct s_MyDeepUserdata)); |
71 | deep_test->prelude.magic.value = DEEP_VERSION.value; | ||
70 | deep_test->val = 0; | 72 | deep_test->val = 0; |
71 | return deep_test; | 73 | return deep_test; |
72 | } | 74 | } |
@@ -81,7 +83,6 @@ static void* deep_test_id( lua_State* L, enum eDeepOp op_) | |||
81 | case eDO_metatable: | 83 | case eDO_metatable: |
82 | { | 84 | { |
83 | luaL_getmetatable( L, "deep"); // mt | 85 | luaL_getmetatable( L, "deep"); // mt |
84 | luaG_pushdeepversion( L); // mt version | ||
85 | return NULL; | 86 | return NULL; |
86 | } | 87 | } |
87 | 88 | ||