Hi Ralph, I know this thread is slightly old, but I have been debugging some garbage collection issues in an app I'm working on right now. I noticed you said the following when responding to Bjorn:
"You'll have to remove all references to a specfic object to actually have it removed. We've run into some problems with this; this was related to states, though, and this is also something which is by design." Right now I'm noticing some jumps in memory consumption when switching between one view state of a component and another. Do you mind giving a quick tip on what you discovered about garbage collection and states in your debugging? Thanks, Jun --- In [email protected], "Ralph Hauwert" <[EMAIL PROTECTED]> wrote: > > removeChildAt() will only remove the specified object from the displaylist, > it won't destroy the object. Flex, by design keeps references to objects in > containers. You'll have to remove all references to a specfic object to > actually have it removed. We've run into some problems with this; this was > related to states, though, and this is also something which is by design. > > On 11/23/06, bjorn.schultheiss <[EMAIL PROTECTED]> wrote: > > > > Hi, > > > > How come after calling removeChildAt(selectedIndex) within a viewstack > > the child object still remains? > > > > I've run basic tests to try get this working but no win. > > > > I have a ViewStack based on this; > > import mx.containers.ViewStack; > > public class ExtVS extends ViewStack > > { > > // my new selectedIndex() > > public function set updateSelectedIndex(index:Number):void > > { > > this.createComponentFromDescriptor(this.childDescriptors [index],false); > > this.validateNow(); > > if (index > 0) > > removeChildAt(selectedIndex); > > } > > } > > > > And i've set it's creationPolicy="none". > > > > I have 3 children. When i start the app in the debugger my children > > look like this in the variables panel; > > c1 = "childs.MyPanel" > > c2 = null > > c3 = null > > > > By the time a proceed through each stack my debugger variables say; > > c1 = "childs.MyPanel" > > c2 = "childs.MyBox" > > c3 = "childs.MyCanvas" > > > > shouldn't it be > > c1 = null > > c2 = null > > c3 = "childs.MyCanvas" > > > > Also i am tracking totalMemory usage and i am receiving no benefits > > compared to when i was not using removeChild() > > > > Thanks, > > Bjorn > > > > > > > > > > -- > Ralph Hauwert > FlashCoder >

