Re: Dangling pointers Lua style...
Evan Wies <[email protected]>
| Newsgroups | gmane.comp.lang.lua.bind.user |
|---|---|
| Message-ID | <[email protected]> |
You can try wrapping the Create/Destroy in a proxy class that uses constructors/destructors instead? It depends on how pervasive this idiom is in your code. From there, Luabind is pretty flexible with how you can bind arbitrary functions to classes. If you want to explicitly control lifetimes, check out how Corona deals with a similar problem: http://developer.anscamobile.com/content/application-programming-guide-graphics-and-drawing#Removing_Objects_Properly -Evan On 09/30/2010 09:28 AM, Nigel Atkinson wrote: > Consider a bound class without a bound constructor. Instead elsewhere > there is a bound function to create and another to destroy. > > Used something like this... > > obj = CreateObject() > > -- use the obj > > DestroyObject( obj ) > > The destroy might do more, but ultimately deletes the object. Problem > is in Lua, we now have a dangling pointer! obj after the destroy call > still points somewhere, and if you accidentally use it bad things > happen. Not good if the Lua scripts are from the end user. They can't > be expected to write "obj = nil" after each call. :) > > So how to automatically set obj to nil after a destroy call? > > My thoughts lean towards “All problems in computer science can be solved > by another level of indirection” > > In this case some sort of smart/auto pointer, and wrapper functions that > throw exceptions if the passed pointer points to bad data? > > What are everyone's thoughts? I have the feeling I've missed some > obvious answer. > > > ------------------------------------------------------------------------------ > Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > luabind-user mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/luabind-user ------------------------------------------------------------------------------ Start uncovering the many advantages of virtual appliances and start using them to simplify application deployment and accelerate your shift to cloud computing. http://p.sf.net/sfu/novell-sfdev2dev _______________________________________________ luabind-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/luabind-user