[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: 'revoking' a userdata
- From: Kriss <Kriss@...>
- Date: Sat, 03 Sep 2005 08:57:38 +0100
Is it possible for the c/c++ side to 'revoke' a userdata from a
script? For example, an object which exists in one level of a game,
but is no longer used or valid in the next level? If the script
forgets to release the object it could persist.
One solution has been to destroy the lua state when transitioning
between levels. But, I want to be able to pass and maintain state.
Have a way of marking objects as no longer accessible, a generic
solution is the same way files are handled in lua. Then lua just manages
a handle/ptr to your data which you can set to invalid on a c side state
change. Then make sure you invalidate all invalid data on state changes
and check for validity before use by lua. As pointed out keeping
references to old data is of course a bug, but its easier to find such
bugs if you mark and catch invalid object use.
http://XIXs.com -><- http://www.WetGenes.com