digitalmars.D.learn - Object removing own last reference.
- strtr <strtr sp.am> Jun 24 2010
- marksibly <blitzmunter gmail.com> Jun 24 2010
- "Simen kjaeraas" <simen.kjaras gmail.com> Jun 25 2010
- strtr <strtr sp.am> Jun 25 2010
void externalFunc(){}
class C
{
..
int index_;
int yay;
void removeMe()
{
//remove last reference to this object
objects[_index] = null;
//other critical code
memberFunc();
externalFunc();
}
void memberFunc(){yay++}
}
Is there anything unsafe about his code? Like the GC removing the Object
before calling memberFunc..
Jun 24 2010
Hi, Shouldn't be as 'this' will keep the object alive as long as necessary. Mark
Jun 24 2010
strtr <strtr sp.am> wrote:void externalFunc(){} class C { .. int index_; int yay; void removeMe() { //remove last reference to this object objects[_index] = null; //other critical code memberFunc(); externalFunc(); } void memberFunc(){yay++} } Is there anything unsafe about his code? Like the GC removing the Object before calling memberFunc..
A reference to it will still be on the stack, so it should be no problem. -- Simen
Jun 25 2010
== Quote from Simen kjaeraas (simen.kjaras gmail.com)'s articlestrtr <strtr sp.am> wrote:void externalFunc(){} class C { .. int index_; int yay; void removeMe() { //remove last reference to this object objects[_index] = null; //other critical code memberFunc(); externalFunc(); } void memberFunc(){yay++} } Is there anything unsafe about his code? Like the GC removing the Object before calling memberFunc..
The "this" marksibly mentioned. Thanks peoples ;)
Jun 25 2010









marksibly <blitzmunter gmail.com> 