]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
Fixed bug in method FindChild
authorsrn <srn@opencascade.com>
Fri, 2 Nov 2007 08:54:00 +0000 (08:54 +0000)
committersrn <srn@opencascade.com>
Fri, 2 Nov 2007 08:54:00 +0000 (08:54 +0000)
src/DF/DF_Label.cxx

index 8bfd113ad7b691ab9edc3f7b8b143b6c13120767..453630a3fe0624dfbebc172cc3e11bb1e0a1cdcf 100644 (file)
@@ -296,18 +296,15 @@ DF_Label DF_Label::FindChild(int theTag, bool isCreate)
   DF_LabelNode *aLabel = NULL, *aPrevious = NULL, *aNext = NULL;
   if(!_node->_firstChild && !isCreate) return DF_Label();
 
-  if(_node->_firstChild && _node->_firstChild->_tag == theTag) 
-    return DF_Label(_node->_firstChild);    
-
+  if(_node->_firstChild && _node->_firstChild->_tag == theTag)
+    return DF_Label(_node->_firstChild);
   if(_node->_lastChild) {
-    if( _node->_lastChild->_tag == theTag) {
-       return DF_Label(_node->_lastChild);
-    }
-    else if( _node->_lastChild->_tag < theTag) { //Incremental addition of children
-       aPrevious = _node->_lastChild;     
-    }  
+    if(_node->_lastChild->_tag == theTag) return DF_Label(_node->_lastChild);
+    if(_node->_lastChild->_tag < theTag) aPrevious = _node->_lastChild;
   }
-  else {
+  
+  if(!aPrevious) { 
     aLabel = _node->_firstChild;
     while(aLabel) {
       if(aLabel->_tag == theTag) return DF_Label(aLabel);
@@ -339,9 +336,7 @@ DF_Label DF_Label::FindChild(int theTag, bool isCreate)
   }
     
   if(!_node->_firstChild || (aNext && aNext == _node->_firstChild) ) _node->_firstChild = aChild;
-  if(!aNext) {
-    _node->_lastChild = aChild;
-  }
+  if(!_node->_lastChild || !aNext) _node->_lastChild = aChild;
   
   return aChild;
 }