]> SALOME platform Git repositories - modules/superv.git/commitdiff
Salome HOME
Memory Leaks
authorrahuel <rahuel@opencascade.com>
Wed, 9 Mar 2005 08:13:10 +0000 (08:13 +0000)
committerrahuel <rahuel@opencascade.com>
Wed, 9 Mar 2005 08:13:10 +0000 (08:13 +0000)
Traces
Control of SwitchNodes

src/GraphBase/DataFlowBase_StreamNode.cxx
src/GraphBase/DataFlowBase_StreamNode.hxx

index b3048d7998983a8cfc3d8251f2f28a00096e4160..fb0a7a150fb0bbc85b44462528c48069f2c92bc7 100644 (file)
@@ -170,7 +170,8 @@ bool GraphBase::StreamNode::RemoveLinkedNode( GraphBase::StreamNode * ToNode ,
   map< string , int >::iterator aMapOfLinkedNodesIterator ;
   int i = 0 ;
   for ( aMapOfLinkedNodesIterator = _MapOfLinkedNodes.begin() ;
-        aMapOfLinkedNodesIterator != _MapOfLinkedNodes.end() ; aMapOfLinkedNodesIterator++ ) {
+        aMapOfLinkedNodesIterator != _MapOfLinkedNodes.end() && i < _LinkedNodesSize ;
+        aMapOfLinkedNodesIterator++ ) {
     cdebug << "_MapOfLinkedNodes" << i++ << " of " << Name() << " : "
            << aMapOfLinkedNodesIterator->first << " --> " << aMapOfLinkedNodesIterator->second
            << endl ;
@@ -180,7 +181,8 @@ bool GraphBase::StreamNode::RemoveLinkedNode( GraphBase::StreamNode * ToNode ,
   map< string , int >::iterator aMapOfLinkedFromNodesIterator ;
   int ifrom = 0 ;
   for ( aMapOfLinkedFromNodesIterator = ToNode->_MapOfLinkedFromNodes.begin() ;
-        aMapOfLinkedFromNodesIterator != ToNode->_MapOfLinkedFromNodes.end() ; aMapOfLinkedFromNodesIterator++ ) {
+        aMapOfLinkedFromNodesIterator != ToNode->_MapOfLinkedFromNodes.end() &&
+        ifrom < ToNode->_LinkedFromNodesSize ; aMapOfLinkedFromNodesIterator++ ) {
     cdebug << "_MapOfLinkedFromNodes" << ifrom++ << " of " << ToNode->Name() << " : "
            << aMapOfLinkedFromNodesIterator->first << " --> "
            << aMapOfLinkedFromNodesIterator->second << endl ;
@@ -262,22 +264,36 @@ bool GraphBase::StreamNode::RemoveLinkedNode( GraphBase::StreamNode * ToNode ,
   map< string , int >::iterator aMapOfLinkedNodesIterator1 ;
   int ii = 0 ;
   for ( aMapOfLinkedNodesIterator1 = _MapOfLinkedNodes.begin() ;
-        aMapOfLinkedNodesIterator1 != _MapOfLinkedNodes.end() ; aMapOfLinkedNodesIterator1++ ) {
-    cdebug << "_MapOfLinkedNodes" << ii++ << " of " << Name() << " : "
-           << aMapOfLinkedNodesIterator1->first << " --> " << aMapOfLinkedNodesIterator1->second
-           << " " << _LinkedNodes[ aMapOfLinkedNodesIterator1->second - 1 ]->Name() << endl ;
+        aMapOfLinkedNodesIterator1 != _MapOfLinkedNodes.end() && ii < _LinkedNodesSize ;
+        aMapOfLinkedNodesIterator1++ ) {
+    if ( aMapOfLinkedNodesIterator1->second ) {
+      cdebug << "_MapOfLinkedNodes" << ii++ << " of " << Name() << " : "
+             << aMapOfLinkedNodesIterator1->first << " --> " << aMapOfLinkedNodesIterator1->second
+             << " " << _LinkedNodes[ aMapOfLinkedNodesIterator1->second - 1 ]->Name() << endl ;
+    }
+    else {
+      cdebug << "_MapOfLinkedNodes" << ii << " of " << Name() << " : "
+             << aMapOfLinkedNodesIterator1->second - 1 << endl ;
+    }
   }
 #endif
 #if 1
   map< string , int >::iterator aMapOfLinkedFromNodesIterator1 ;
   int iifrom = 0 ;
   for ( aMapOfLinkedFromNodesIterator1 = ToNode->_MapOfLinkedFromNodes.begin() ;
-        aMapOfLinkedFromNodesIterator1 != ToNode->_MapOfLinkedFromNodes.end() ; aMapOfLinkedFromNodesIterator1++ ) {
-    cdebug << "_MapOfLinkedFromNodes" << iifrom++ << " of " << ToNode->Name() << " : "
-           << aMapOfLinkedFromNodesIterator1->first << " --> "
-           << aMapOfLinkedFromNodesIterator1->second << " "
-           << ToNode->_LinkedFromNodes[ aMapOfLinkedFromNodesIterator1->second - 1 ]->Name()
-           << endl ;
+        aMapOfLinkedFromNodesIterator1 != ToNode->_MapOfLinkedFromNodes.end() &&
+        iifrom < ToNode->_LinkedFromNodesSize ; aMapOfLinkedFromNodesIterator1++ ) {
+    if ( aMapOfLinkedFromNodesIterator1->second ) {
+      cdebug << "_MapOfLinkedFromNodes" << iifrom++ << " of " << ToNode->Name() << " : "
+             << aMapOfLinkedFromNodesIterator1->first << " --> "
+             << aMapOfLinkedFromNodesIterator1->second << " "
+             << ToNode->_LinkedFromNodes[ aMapOfLinkedFromNodesIterator1->second - 1 ]->Name()
+             << endl ;
+    }
+    else {
+      cdebug << "_MapOfLinkedFromNodes" << iifrom << " of " << ToNode->Name() << " : "
+             << aMapOfLinkedFromNodesIterator1->second - 1 << endl ;
+    }
   }
 #endif
   cdebug_out << "StreamNode::RemoveLinkedNode between " << Name() << " and " << ToNode->Name()
@@ -288,7 +304,7 @@ bool GraphBase::StreamNode::RemoveLinkedNode( GraphBase::StreamNode * ToNode ,
 void GraphBase::StreamNode::ReNameLinkedNode( const char* OldNodeName ,
                                               const char* NewNodeName ) {
   cdebug_in << Name() << "->GraphBase::StreamNode::ReNameLinkedNode (" << OldNodeName << " , "
-            << NewNodeName << ")" << endl;
+            << NewNodeName << ") _LinkedNodesSize " << _LinkedNodesSize << endl;
   int index = GetLinkedNodeIndex( OldNodeName ) ;
   if ( index >= 0 ) {
 //    _MapOfLinkedNodes.erase( OldNodeName ) ;
@@ -299,13 +315,25 @@ void GraphBase::StreamNode::ReNameLinkedNode( const char* OldNodeName ,
     cdebug << "GraphBase::StreamNode::ReNameLinkedNode ERROR " << OldNodeName << " not found in "
            << Name() << endl ;
   }
+#if 1
+  map< string , int >::iterator aMapOfLinkedNodesIterator1 ;
+  int ii = 0 ;
+  for ( aMapOfLinkedNodesIterator1 = _MapOfLinkedNodes.begin() ;
+        aMapOfLinkedNodesIterator1 != _MapOfLinkedNodes.end() && ii < _LinkedNodesSize ;
+        aMapOfLinkedNodesIterator1++ ) {
+    cdebug << "_MapOfLinkedNodes" << ii++ << " of " << Name() << " : "
+           << aMapOfLinkedNodesIterator1->first << " --> " << aMapOfLinkedNodesIterator1->second
+           << " " << _LinkedNodes[ aMapOfLinkedNodesIterator1->second - 1 ]->Name() << endl ;
+  }
+#endif
   cdebug_out << Name() << "->GraphBase::StreamNode::ReNameLinkedNode" << endl ;
 }
 
 void GraphBase::StreamNode::ReNameLinkedFromNode( const char* OldNodeName ,
                                                   const char* NewNodeName ) {
-  cdebug_in << Name() << "->GraphBase::StreamNode::ReNameLinkedFromNode (" << OldNodeName << " , "
-            << NewNodeName << ")" << endl;
+  cdebug_in << Name() << "->GraphBase::StreamNode::ReNameLinkedFromNode (" << OldNodeName
+            << " , " << NewNodeName << ") _LinkedFromNodesSize " << _LinkedFromNodesSize
+            << endl;
   int index = GetLinkedFromNodeIndex( OldNodeName ) ;
   if ( index >= 0 ) {
 //    _MapOfLinkedFromNodes.erase( OldNodeName ) ;
@@ -316,6 +344,19 @@ void GraphBase::StreamNode::ReNameLinkedFromNode( const char* OldNodeName ,
     cdebug << Name() << "->GraphBase::StreamNode::ReNameLinkedFromNode ERROR " << OldNodeName
            << " not found in " << Name() << endl ;
   }
+#if 1
+  map< string , int >::iterator aMapOfLinkedFromNodesIterator1 ;
+  int iifrom = 0 ;
+  for ( aMapOfLinkedFromNodesIterator1 = _MapOfLinkedFromNodes.begin() ;
+        aMapOfLinkedFromNodesIterator1 != _MapOfLinkedFromNodes.end() &&
+        iifrom < _LinkedFromNodesSize ; aMapOfLinkedFromNodesIterator1++ ) {
+    cdebug << "_MapOfLinkedFromNodes" << iifrom++ << " of " << Name() << " : "
+           << aMapOfLinkedFromNodesIterator1->first << " --> "
+           << aMapOfLinkedFromNodesIterator1->second << " "
+           << _LinkedFromNodes[ aMapOfLinkedFromNodesIterator1->second - 1 ]->Name()
+           << endl ;
+  }
+#endif
   cdebug_out << Name() << "->GraphBase::StreamNode::ReNameLinkedFromNode" << endl ;
 }
 
index 122d15207d38ac75ea50506ff41d6dd4b2797fef..63398c76893714cab6a68cfae0f287f76fa51b70 100644 (file)
@@ -51,6 +51,8 @@ namespace GraphBase {
       vector<StreamNode * > _LinkedStreamNodes ;
       vector<int >          _LinkedInStreamPortsNumber ;
 
+      bool                  _NodeDoneInBranchOfSwitch ;
+
       bool                  _HeadNode ;
       int                   _LevelNumber ;
       int                   _SortedIndex ;
@@ -84,8 +86,15 @@ namespace GraphBase {
 
     public:
 
-      char * Name() const { return my_strdup( _Name ) ; } ;
-      const char *const * NamePtr() const { return &_Name ; } ;
+//JR 17.02.2005 Memory Leak      char * Name() const { return my_strdup( _Name ) ; } ;
+      char * Name() const {
+//             cdebug << "StreamNode::Name " << (void * ) _Name << " = " << _Name << endl ;
+//JR 21.02.2005 Memory Leak             return my_strdup( _Name ) ; } ;
+             return _Name ; } ;
+      const char *const * NamePtr() const {
+//            cdebug << "StreamNode::NamePtr " << (void ** ) &_Name << " = Name " << (void * ) _Name
+//                   << " = " << _Name << endl ;
+            return &_Name ; } ;
       bool Name( const char * aName ) ;
 
       SUPERV::KindOfNode Kind() const {
@@ -207,6 +216,16 @@ namespace GraphBase {
 
       StreamNode * LinkedStreamNodes( int i ) const { return _LinkedStreamNodes[ i ] ; } ;
 
+      bool BranchOfSwitchDone( bool aNodeDoneInBranchOfSwitch ) {
+           bool prevalue = _NodeDoneInBranchOfSwitch ;
+           _NodeDoneInBranchOfSwitch = aNodeDoneInBranchOfSwitch ;
+           if ( prevalue && !aNodeDoneInBranchOfSwitch ) {
+             return false ;
+          }
+           return true ; } ;
+      bool BranchOfSwitchDone() {
+           return _NodeDoneInBranchOfSwitch ; } ;
+
       void HeadNode( bool aHeadNode ) { _HeadNode = aHeadNode ; } ;
       const bool IsHeadNode() const { return _HeadNode ; } ;