[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: luac and dumping code
- From: Luiz Henrique de Figueiredo <lhf@...>
- Date: Fri, 5 Oct 2001 20:40:01 -0300
>I am working on a design for a persistent system which interprets lua files.
>In order to effect a speedup, I want to cache the compiled lua Proto
>objects. It seems to me that the best way to do this is to dump them (like
>luac does) and then keep the dump around in memory so I can undump it into
>any of the lua states I want, whenever I want to.
In 4.1, you have loadfile and loadbuffer leave precompiled stuff in the stack.
If you want the exact binary representation used by luac, use ldumplib.c in
src/luac.
>I need to know, because if this would introduce a memory leak, I need to
>address the issues :)
strip in luac.c does not care about freeing, because luac is a standalone
program. If you copy the code of strip into your application unchanged, it
will leak memory. To fix this, add these lines at the beginning of strip:
luaM_freearray(L, f->lineinfo, f->sizelineinfo, int);
luaM_freearray(L, f->locvars, f->sizelocvars, struct LocVar);
(these are from luaF_freeproto in lfunc.c.)
--lhf