[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Setting size of userdata
- From: Vincent Penne <ziggy@...>
- Date: Wed, 15 Jan 2003 15:45:44 +0100
We are using lua 4 as scripting language in an open source project on
dreamcast. Since it is a realtime application which create several
temporary objects every frame, we used the incremental garbage collector
patch, which works very fine, thanks to Paul Liu !
In this project, in particular we have many temporary userdata that are
created and forgot every frame. I found that one problem is that lua
count the memory used by userdata as only the memory taken to manage it
internally. So I added some function that let me declare how much
additional memory does the userdata takes. This amount can be changed
anytime, so that even complex object that make several reallocation can
keep up to date memory usage information (of course, this may not be
desirable to do so in every case). Also , most of the time, giving some
empirical value may be enough (and more simple to implement).
An example of use is :
lua_pushusertag(L, data, tag);
lua_setsz(L, 1024); /* declare 1024 bytes of memory usage for this userdata */
Also a shortcut may exist to make both at the same time
lua_pushusertagsz(L, data, tag, 1024); /* create a new userdata and declare it's memory usage */
What do you think about adding this feature into lua ?