I have been tracing this bug for two days and finally found it. I
don't see how this .normalize method is changing data in other areas
of my code?

So when makeData is called I pass it xml with child nodes. It is
stored in _data and then I se several variables and call the the
buildXMLObj method. When inside the buildXMLObj when the line with
.normalize is run my variable _data (now only contains parent nodes
with out the children). The buildXMLObj removes children but it is
never assigned to _data so how is _data getting changed?

package 
{
        public class DataDelegate
        {
                import mx.rpc.AsyncToken;
                import mx.utils.ObjectUtil;
                
                import com.models.ViewModelLocator;
                
                private var modelLocator:ViewModelLocator =
ViewModelLocator.getInstance();
                private var _newSelected:int = 0;
                private var midXML:XMLList;
                private var _data:XMLList;
                
                public function DataDelegate(){

                }
                
                private function buildXMLObj(xmllist:XMLList):void
                {
                        var copyOfList:XML = <groups/>;
                        for each (var xl:XML in xmllist)
                        {
                                 if (xl.length())
                         {
                        xl.replace("*", "");
                 }
                        copyOfList.appendChild(xl);
                        }
                        copyOfList = copyOfList.normalize();
                        midXML = copyOfList.descendants("*");

                }
                
                public function makeData(datas:XML):void
                {
                        trace("MakeData was called
---------------------------------------------------");
                                var _data:XML = datas;
                                modelLocator.selected = -1;
                                var xml:XML = datas as XML;
                                var _newSelected:int;
                                
                                var comps:XMLList = xml.group.component;
                                buildXMLObj(xml.group);
                                var groups:XMLList = midXML;
                                
                                if (modelLocator.comps.length() > 0)
                                        { 
                                                _newSelected = parseInt([EMAIL 
PROTECTED]);
                                                modelLocator.selected = 
_newSelected;
                                        }
                        /*      modelLocator.allDataArr.splice(_newSelected,1); 
*/
                                modelLocator.allDataArr[_newSelected] = _data;  
                                modelLocator.comps = comps;
                                modelLocator.groups = groups;
                }
        }
}

Reply via email to