[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Using Lua's memory allocator
- From: Gavin Wraith <gavin@...>
- Date: Tue, 11 Oct 2011 12:22:26 +0100
> It seems to be a good start.
> What bothers me is the condition to decide what can be collected or not.
> If your code just allocates chunks, perform a local work with it and
> then free it, alloca function could also work, at a much lower cost...
> If, as I imagine, a chunk must be kept until some other other chunk is
> used, it becomes more complicated. You will need to keep references in
> Lua (for example with a table in the registry, where the keys are
> lightuserdata) in the some way as in C++ the destructors are usually
> chained. This can not be done be simply changing calloc in your
Thanks. The library is for manipulating objects of varying sizes.
Those manipulations may involve the use of temporary objects whose
storage can be reclaimed anytime. The "permanent" objects are
to be accessed from Lua (how permanent depends on the Lua side of
things), and the exported functions that manipulate them are to
be wrapped in Lua clothes.
Everything can be garbage collectible apart from the single
struct allocated when the library is initialised. For that a
plain malloc should be OK.
I do not think "alloca" is part of ANSI C is it? I have to keep
Gavin Wraith (email@example.com)
Home page: http://www.wra1th.plus.com/