]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Fix compilation errors on CentOS
authorazv <azv@opencascade.com>
Thu, 18 Aug 2016 13:22:58 +0000 (16:22 +0300)
committerazv <azv@opencascade.com>
Thu, 18 Aug 2016 13:22:58 +0000 (16:22 +0300)
src/Model/Model_SelectionNaming.cpp
src/ModelHighAPI/ModelHighAPI_FeatureStore.cpp
src/ModelHighAPI/ModelHighAPI_FeatureStore.h
src/ModelHighAPI/ModelHighAPI_Tools.cpp
src/SketchAPI/SketchAPI.i

index ecfc26584755ff1ebb65c684c6f161b852ae14ad..5d408bb86468bdcb564ff1facb3c177e739e61ce 100644 (file)
@@ -33,6 +33,7 @@
 #include <TDataStd_Name.hxx>
 #include <TColStd_MapOfTransient.hxx>
 #include <algorithm>
+#include <stdexcept>
 
 #ifdef DEB_NAMING
 #include <BRepTools.hxx>
@@ -488,17 +489,18 @@ bool parseSubIndices(CompositeFeaturePtr theComp, //< to iterate names
     } else {
       int anOrientation = 1; // default
       if (theOriented) { // here must be a symbol in the end of digit 'f' or 'r'
-        const char aSymbol = anID.back();
-        if (aSymbol == 'r') anOrientation = -1;
-        anID.pop_back();
+        std::string::iterator aSymbol = anID.end() - 1;
+        if (*aSymbol == 'r') anOrientation = -1;
+        anID.erase(aSymbol); // remove last symbol
       }
       // check start/end symbols
-      if (anID.back() == 's') {
+      std::string::iterator aBack = anID.end() - 1;
+      if (*aBack == 's') {
         anOrientation *= 2;
-        anID.pop_back();
-      } else if (anID.back() == 'e') {
+        anID.erase(aBack); // remove last symbol
+      } else if (*aBack == 'e') {
         anOrientation *= 3;
-        anID.pop_back();
+        anID.erase(aBack); // remove last symbol
       }
 
       if (aNames.find(anID) != aNames.end()) {
@@ -581,9 +583,12 @@ std::string Model_SelectionNaming::shortName(
   aName.erase(std::remove(aName.begin(), aName.end(), '&'), aName.end());
   // remove the last 's', 'e', 'f' and 'r' symbols: they are used as markers of start/end/forward/rewersed indicators
   static const std::string aSyms("sefr");
-  while(aSyms.find(aName.back()) != std::string::npos) {
-    aName.pop_back();
+  std::string::iterator aSuffix = aName.end() - 1;
+  while(aSyms.find(*aSuffix) != std::string::npos) {
+    --aSuffix;
   }
+  aName.erase(aSuffix + 1, aName.end());
+
   if (theEdgeVertexPos == 1) {
     aName += "s"; // start
   } else if (theEdgeVertexPos == 2) {
index ac702d9689d881026d432b8d1d4a452534bb3e47..0200b851e476282a2d6554c821065972912d76cd 100644 (file)
@@ -87,7 +87,8 @@ void ModelHighAPI_FeatureStore::storeData(std::shared_ptr<ModelAPI_Data> theData
   }
   ResultPtr aShapeOwner = std::dynamic_pointer_cast<ModelAPI_Result>(theData->owner());
   if (aShapeOwner.get() && aShapeOwner->shape().get()) {
-    theAttrs["__shape__"] = dumpShape(aShapeOwner->shape());
+    std::shared_ptr<GeomAPI_Shape> aShape = aShapeOwner->shape();
+    theAttrs["__shape__"] = dumpShape(aShape);
   }
 }
 
index d6d92d91d624b139944e42e1d5993284ba1dffe6..fbe83c0153a0e3152bdc4188be322eec37effefb 100644 (file)
@@ -12,6 +12,7 @@
 #include <map>
 #include <list>
 #include <string>
+#include <memory>
 
 class ModelAPI_Feature;
 class ModelAPI_Data;
index ca56b3712df2f167df528aa1c69361351e5336e9..23f65ebc61497dc1e3c0066451243f2feb610068 100644 (file)
@@ -347,8 +347,8 @@ bool checkPythonDump()
   std::string anError = storeFeatures(
     aSession->moduleDocument()->kind(), aSession->moduleDocument(), aStore, false);
   if (!anError.empty()) {
-    Events_InfoMessage anError("checkPythonDump", anError);
-    anError.send();
+    Events_InfoMessage anErrorMsg(std::string("checkPythonDump"), anError);
+    anErrorMsg.send();
     return false;
   }
   // close all before importation of the script
@@ -364,8 +364,8 @@ bool checkPythonDump()
     aSession->moduleDocument()->kind(), aSession->moduleDocument(), aStore, true);
   if (!anError.empty()) {
     std::cout<<anError<<std::endl;
-    Events_InfoMessage anError("checkPythonDump", anError);
-    anError.send();
+    Events_InfoMessage anErrorMsg(std::string("checkPythonDump"), anError);
+    anErrorMsg.send();
     return false;
   }
 
index 734b87599f0247aeb07cf4c5d15b1f4aa92681c8..c9638a205a48b7f4d9dd17020a96d8717b1f0013 100644 (file)
@@ -45,7 +45,7 @@
       PyErr_SetString(PyExc_TypeError, "argument must be ModelHighAPI_RefAttr, ModelHighAPI_Selection, ModelHighAPI_Interface, ModelAPI_Attribute or ModelAPI_Object.");
       return NULL;
     }
-    temp = ModelHighAPI_RefAttr(temp_selection->resultSubShapePair().first);
+    temp = ModelHighAPI_RefAttr(std::shared_ptr<ModelAPI_Object>(temp_selection->resultSubShapePair().first));
     if (newmem & SWIG_CAST_NEW_MEMORY) {
       delete temp_selection;
     }