uiacceltk/hitchcock/ServerCore/Src/alfnodes.cpp
branchRCL_3
changeset 63 e1987ab3768a
parent 52 31fccae4f8a7
--- a/uiacceltk/hitchcock/ServerCore/Src/alfnodes.cpp	Wed Sep 15 13:12:27 2010 +0300
+++ b/uiacceltk/hitchcock/ServerCore/Src/alfnodes.cpp	Wed Oct 13 15:34:15 2010 +0300
@@ -394,60 +394,61 @@
 // ---------------------------------------------------------------------------
 //
 
+// ---------------------------------------------------------------------------
+// CAlfNode::TraverseNodeTree
+// Traverse through node tree and fill node array 
+// ---------------------------------------------------------------------------
+//
+
 void CAlfNode::TraverseNodeTree( CAlfNode* node,  RPointerArray<CAlfNode>& nodes, TBool aTraverseOnlySiblings, TBool aAddMe)
     {
     // Exit if we've already finished walking the tree.
     if ( node == NULL) 
         { 
-        __ALFLOGSTRING("TraverseNodeTree returning - NULL");                                  
+        __ALFLOGSTRING(" returning NULL");                                  
         return;
         }
-    
-    while ( node )
+    if (!aTraverseOnlySiblings)
         {
-        if (!aTraverseOnlySiblings)
-            {   
-            if ( node->iSpriteChild ) 
-                {
-                CAlfNode* spritenode = node->iSpriteChild ;
-                while ( spritenode )
-                    {
-                    nodes.Append( spritenode );                
-                    spritenode = spritenode->iSibling;
-                    }
-                }
-    
-            if( node->iTextCursor )
-                {
-                nodes.Append(node->iTextCursor );            
-                }
-    
-            if( node->iAnimChild )
+        if ( node->iSpriteChild ) 
+            {
+        CAlfNode* spritenode = node->iSpriteChild ;
+            while ( spritenode )
                 {
-                CAlfNode* animnode = node->iAnimChild ;
-                while ( animnode )
-                    {
-                    nodes.Append( animnode );                
-                    animnode = animnode->iSibling;
-                    }
-                }
-        
-            if ( node->iChild)
-                {                
-                TraverseNodeTree(node->iChild , nodes, EFalse, ETrue);            
+                nodes.Append( spritenode );                
+                spritenode = spritenode->iSibling;
                 }
-            } 
-
-        if (aAddMe)
+            }
+    
+        if( node->iTextCursor )
             {
-            nodes.Append( node );
+            nodes.Append(node->iTextCursor );            
+            }
+    
+        if( node->iAnimChild )
+            {
+            CAlfNode* animnode = node->iAnimChild ;
+            while ( animnode )
+                {
+                nodes.Append( animnode );                
+                animnode = animnode->iSibling;
+                }
             }
+        
+        if ( node->iChild)
+            {                
+            TraverseNodeTree(node->iChild , nodes, EFalse, ETrue);            
+            }
+        } 
 
-        // Without recursion, continue with the following:
-        // TraverseNodeTree(node->iSibling, nodes, ETrue, ETrue);
-        node = node->iSibling;
-        aTraverseOnlySiblings = ETrue;
-        aAddMe = ETrue;
+    if (aAddMe)
+        {
+        nodes.Append( node );
+        }
+
+    if ( node->iSibling )
+        {                
+        TraverseNodeTree(node->iSibling, nodes, ETrue, ETrue);               
         }
     }