Salome HOME
0021891: EDF 2398 : Error when dumping a study with non historical mode
authoreap <eap@opencascade.com>
Tue, 9 Oct 2012 13:53:34 +0000 (13:53 +0000)
committereap <eap@opencascade.com>
Tue, 9 Oct 2012 13:53:34 +0000 (13:53 +0000)
  Fix bug that AddHypothesis() + RemoveHypothesis() pair was cleared in
  the historical mode if a hypothesis was removed

src/SMESH_I/SMESH_2smeshpy.cxx

index 28bc3cfd429bf33678e1ce74f214607189805428..6734c0d2f5419bed23f3493fd9d18990be4c148f 100644 (file)
@@ -1563,9 +1563,11 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
         if ( sameHyp )
         {
           addCmd = *cmd;
-          addCmd->Clear();
-          theCommand->Clear();
-          cmd = addHypCmds.erase( cmd );
+          cmd    = addHypCmds.erase( cmd );
+          if ( !theGen->IsToKeepAllCommands() ) {
+            addCmd->Clear();
+            theCommand->Clear();
+          }
         }
         else
         {
@@ -1574,7 +1576,7 @@ void _pyMesh::Process( const Handle(_pyCommand)& theCommand )
       }
     }
     Handle(_pyHypothesis) hyp = theGen->FindHyp( hypID );
-    if ( addCmd.IsNull() && !hypID.IsEmpty() ) { // hypo addition already wrapped
+    if ( !theCommand->IsEmpty() && !hypID.IsEmpty() ) {
       // RemoveHypothesis(geom, hyp) --> RemoveHypothesis( hyp, geom=0 )
       _pyID geom = theCommand->GetArg( 1 );
       theCommand->RemoveArgs();