summaryrefslogtreecommitdiffstats
path: root/apps/plugins/lua/lfunc.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/lua/lfunc.c')
-rw-r--r--apps/plugins/lua/lfunc.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/apps/plugins/lua/lfunc.c b/apps/plugins/lua/lfunc.c
index d2ce63dc4b..ef275cecd2 100644
--- a/apps/plugins/lua/lfunc.c
+++ b/apps/plugins/lua/lfunc.c
@@ -128,12 +128,17 @@ Proto *luaF_newproto (lua_State *L) {
f->numparams = 0;
f->is_vararg = 0;
f->maxstacksize = 0;
- f->lineinfo = NULL;
f->sizelocvars = 0;
f->locvars = NULL;
f->linedefined = 0;
f->lastlinedefined = 0;
f->source = NULL;
+#ifdef LUA_OPTIMIZE_DEBUG
+ f->packedlineinfo = NULL;
+#else
+ f->lineinfo = NULL;
+
+#endif
return f;
}
@@ -142,7 +147,13 @@ void luaF_freeproto (lua_State *L, Proto *f) {
luaM_freearray(L, f->code, f->sizecode, Instruction);
luaM_freearray(L, f->p, f->sizep, Proto *);
luaM_freearray(L, f->k, f->sizek, TValue);
+#ifdef LUA_OPTIMIZE_DEBUG
+ if (f->packedlineinfo) {
+ luaM_freearray(L, f->packedlineinfo, f->sizelineinfo, unsigned char);
+ }
+#else
luaM_freearray(L, f->lineinfo, f->sizelineinfo, int);
+#endif
luaM_freearray(L, f->locvars, f->sizelocvars, struct LocVar);
luaM_freearray(L, f->upvalues, f->sizeupvalues, TString *);
luaM_free(L, f);