Salome HOME
Merge branch 'V9_4_BR'
[modules/smesh.git] / src / SMESH / SMESH_Gen.cxx
index 4b5814c1f1244ca09eb9afce4d8c3475c5405194..1e9c1471a1e404d52c46ef6385ab35fb437f9ca9 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2019  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
@@ -52,6 +52,8 @@
   #include <windows.h>
 #endif
 
+#include <Basics_Utils.hxx>
+
 using namespace std;
 
 //=============================================================================
@@ -91,12 +93,12 @@ namespace
 
 SMESH_Gen::~SMESH_Gen()
 {
-    std::map < int, SMESH_Hypothesis * >::iterator i_hyp = _studyContext->mapHypothesis.begin();
-    for ( ; i_hyp != _studyContext->mapHypothesis.end(); ++i_hyp )
-    {
-      if ( _Hyp* h = static_cast< _Hyp*>( i_hyp->second ))
-        h->NullifyGen();
-    }
+  std::map < int, SMESH_Hypothesis * >::iterator i_hyp = _studyContext->mapHypothesis.begin();
+  for ( ; i_hyp != _studyContext->mapHypothesis.end(); ++i_hyp )
+  {
+    if ( _Hyp* h = static_cast< _Hyp*>( i_hyp->second ))
+      h->NullifyGen();
+  }
   delete _studyContext->myDocument;
   delete _studyContext;
 }
@@ -1029,7 +1031,15 @@ std::vector< std::string > SMESH_Gen::GetPluginXMLPaths()
       xmlPath += sep + plugin + ".xml";
       bool fileOK;
 #ifdef WIN32
-      fileOK = (GetFileAttributes(xmlPath.c_str()) != INVALID_FILE_ATTRIBUTES);
+#ifdef UNICODE
+      const wchar_t* path = Kernel_Utils::decode_s(xmlPath);
+#else
+      const char* path = xmlPath.c_str();
+#endif
+      fileOK = (GetFileAttributes(path) != INVALID_FILE_ATTRIBUTES);
+#ifdef UNICODE
+      delete path;
+#endif
 #else
       fileOK = (access(xmlPath.c_str(), F_OK) == 0);
 #endif