XFAIL the test cases for r186044 on Hexagon
[oota-llvm.git] / lib / Support / Windows / DynamicLibrary.inc
index 6724fbcc50d92ea97b76a4edae780f6dab25f420..83da82a949ca5e0e50659a8781d0f2006dee0728 100644 (file)
@@ -63,7 +63,7 @@ extern "C" {
 #endif
         stricmp(ModuleName, "msvcrt20") != 0 &&
         stricmp(ModuleName, "msvcrt40") != 0) {
-      OpenedHandles->push_back((HMODULE)ModuleBase);
+      OpenedHandles->insert((HMODULE)ModuleBase);
     }
     return TRUE;
   }
@@ -71,9 +71,10 @@ extern "C" {
 
 DynamicLibrary DynamicLibrary::getPermanentLibrary(const char *filename,
                                                    std::string *errMsg) {
+  SmartScopedLock<true> lock(getMutex());
+
   if (!filename) {
     // When no file is specified, enumerate all DLLs and EXEs in the process.
-    SmartScopedLock<true> lock(getMutex());
     if (OpenedHandles == 0)
       OpenedHandles = new DenseSet<HMODULE>();
 
@@ -86,11 +87,10 @@ DynamicLibrary DynamicLibrary::getPermanentLibrary(const char *filename,
   HMODULE a_handle = LoadLibrary(filename);
 
   if (a_handle == 0) {
-    MakeErrMsg(ErrMsg, std::string(filename) + ": Can't open : ");
+    MakeErrMsg(errMsg, std::string(filename) + ": Can't open : ");
     return DynamicLibrary();
   }
 
-  SmartScopedLock<true> lock(getMutex());
   if (OpenedHandles == 0)
     OpenedHandles = new DenseSet<HMODULE>();