Salome HOME
Merge remote branch 'origin/gdd/translations'
[modules/smesh.git] / src / SMESH_I / SMESH_Gen_i.cxx
index b822651b7ee853da1a91cc152f911fc9fba7eb3a..30182b09970794e66a70f706824ef5249484875e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2015  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -467,23 +467,22 @@ SMESH::SMESH_Hypothesis_ptr SMESH_Gen_i::createHypothesis(const char* theHypName
   SMESH_Hypothesis_i* myHypothesis_i = 0;
   SMESH::SMESH_Hypothesis_var hypothesis_i;
   std::string aPlatformLibName;
-  typedef GenericHypothesisCreator_i* (*GetHypothesisCreator)(const char* );
-  GenericHypothesisCreator_i* aCreator = getHypothesisCreator(theHypName, theLibName, aPlatformLibName);
-  // create a new hypothesis object, store its ref. in studyContext
-  if(MYDEBUG) MESSAGE("Create Hypothesis " << theHypName);
-  myHypothesis_i =
-    myHypCreatorMap[string(theHypName)]->Create(myPoa, GetCurrentStudyID(), &myGen);
-  myHypothesis_i->SetLibName(aPlatformLibName.c_str()); // for persistency assurance
-
-  if (!myHypothesis_i)
-    return hypothesis_i._retn();
+  GenericHypothesisCreator_i* aCreator =
+    getHypothesisCreator(theHypName, theLibName, aPlatformLibName);
 
-  // activate the CORBA servant of hypothesis
-  hypothesis_i = myHypothesis_i->_this();
-  int nextId = RegisterObject( hypothesis_i );
-  if(MYDEBUG) { MESSAGE( "Add hypo to map with id = "<< nextId ); }
-  else        { nextId = 0; } // avoid "unused variable" warning in release mode
+  // create a new hypothesis object, store its ref. in studyContext
+  myHypothesis_i = aCreator->Create(myPoa, GetCurrentStudyID(), &myGen);
+  if (myHypothesis_i)
+  {
+    myHypothesis_i->SetLibName(aPlatformLibName.c_str()); // for persistency assurance
+    myHypCreatorMap[ myHypothesis_i->GetName() ] = aCreator;
 
+    // activate the CORBA servant of hypothesis
+    hypothesis_i = myHypothesis_i->_this();
+    int nextId = RegisterObject( hypothesis_i );
+    if(MYDEBUG) { MESSAGE( "Add hypo to map with id = "<< nextId ); }
+    else        { nextId = 0; } // avoid "unused variable" warning in release mode
+  }
   return hypothesis_i._retn();
 }