[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Boxed userdata and garbage collector
- From: Jonathan Castello <twisolar@...>
- Date: Thu, 2 Sep 2010 13:11:41 -0700
On Thu, Sep 2, 2010 at 1:09 PM, Jonathan Castello <twisolar@gmail.com> wrote:
> On Thu, Sep 2, 2010 at 1:03 PM, Sylvain Fabre <sylvain.fabre@inpixal.com> wrote:
>> Yes of course :) All our objects have a __gc metamethod implemented !
>> But the core issue is that for each object allocated internally, onlye 4
>> bytes/8bytes are seen from the LUA garbage collector... But internally,
>> megaoctets are allocated...
>> Hence, the garbage collector does not trigger "properly", and we ran out of
>> memory.
>
> What if you allocate the entire space required by your object as a
> userdatum, and use placement new to initialize it into the space Lua
> allocated for you? Then you're not using a pointer, you're using the
> whole object.
>
> ~Jonathan
>
Of course, if you're not using C++ you wouldn't use placement new... *cough*
~Jonathan