Dangling pointers Lua style...

Nigel Atkinson <[email protected]>
Newsgroups gmane.comp.lang.lua.bind.user
Message-ID <1285853289.1631.35.camel@octavo>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.