Hi all

How does flex handle parameter passing, as I understand, it is by Pass
by reference. But I was having some memory leaks and playing around a
few tweaks and the following snippet completely took me by surprise.

// CODE START

<script>

public var obj:Object;

createObject(){

        obj = {test:"1234",test2:"5678"};
}

checkObject(objParam:Object){
        trace(objParam);
}

deleteObject(objParam:Object){
        objParam = null; // I tried objParam = undefined as well
}

</script>

<mx:Button id="create" click="createObject()" />
<mx:Button id="check" click="checkObject(obj)" />
<mx:Button id="delete" click="deleteObject(obj)" />
 
// END 

Now 1. I created the object by click on create
    2. Then check for the existence of it (Traces [object object].. This
is fine)
    3. Then clicked delete. 
    4. Then again click on check... (Traces [object] [object]
!!!!!!!!!!!!!!!!!!!!! But since its passed by reference it should be
NULL)


Somewhere I read that it setting to NULL changes the reference count,
does that mean in each of my function I need to set all the params to
null at the end of it so that refercne count is reduced and raady for
garbage collection!! ( That doesn't quite a sense !!)

Regards
Ravi

Reply via email to