summaryrefslogtreecommitdiff
path: root/plugins/MirLua/Modules/JSON/src/stdafx.h
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/MirLua/Modules/JSON/src/stdafx.h')
-rw-r--r--plugins/MirLua/Modules/JSON/src/stdafx.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/plugins/MirLua/Modules/JSON/src/stdafx.h b/plugins/MirLua/Modules/JSON/src/stdafx.h
index 104b898845..333a821a62 100644
--- a/plugins/MirLua/Modules/JSON/src/stdafx.h
+++ b/plugins/MirLua/Modules/JSON/src/stdafx.h
@@ -10,11 +10,24 @@
#include <m_core.h>
#include <m_json.h>
+#include <m_string.h>
struct MT
{
JSONNode *node;
bool bDelete;
+
+ MT(JSONNode &refNode, bool bCopy = false) : node(bCopy ? json_copy(&refNode) : &refNode), bDelete(!bCopy) {}
+ MT(JSONNode *n, bool bD = true) : node(n), bDelete(bD) {}
+ ~MT()
+ {
+ if (bDelete) json_delete(node);
+ }
+
+ __inline void* operator new(size_t size, lua_State *L)
+ {
+ return lua_newuserdata(L, size);
+ }
};
extern const luaL_Reg jsonApi[];