Use llvm::sys::Path to destroy the file.
authorReid Spencer <rspencer@reidspencer.com>
Tue, 28 Sep 2004 23:58:03 +0000 (23:58 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Tue, 28 Sep 2004 23:58:03 +0000 (23:58 +0000)
Patch contributed by Jeff Cohen. Thanks Jeff!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16564 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/Win32/Signals.cpp
lib/System/Win32/Signals.inc

index 692a0476b1f7b4bb882277ecc0aa2383301f90d8..908ae84c4b7a2aa177be786df29c8c338ae3796d 100644 (file)
@@ -13,6 +13,7 @@
 
 #include "Win32.h"
 #include <llvm/System/Signals.h>
+#include <stdio.h>
 #include <vector>
 
 #ifdef __MINGW_H
@@ -29,7 +30,7 @@
 static LONG WINAPI LLVMUnhandledExceptionFilter(LPEXCEPTION_POINTERS ep);
 static BOOL WINAPI LLVMConsoleCtrlHandler(DWORD dwCtrlType);
 
-static std::vector<std::string> *FilesToRemove = NULL;
+static std::vector<llvm::sys::Path> *FilesToRemove = NULL;
 static std::vector<llvm::sys::Path> *DirectoriesToRemove = NULL;
 static bool RegisteredUnhandledExceptionFilter = false;
 static bool CleanupExecuted = false;
@@ -78,9 +79,9 @@ void sys::RemoveFileOnSignal(const std::string &Filename) {
     throw std::string("Process terminating -- cannot register for removal");
 
   if (FilesToRemove == NULL)
-    FilesToRemove = new std::vector<std::string>;
+    FilesToRemove = new std::vector<sys::Path>;
 
-  FilesToRemove->push_back(Filename);
+  FilesToRemove->push_back(sys::Path(Filename));
 
   LeaveCriticalSection(&CriticalSection);
 }
@@ -123,7 +124,7 @@ static void Cleanup() {
   if (FilesToRemove != NULL)
     while (!FilesToRemove->empty()) {
       try {
-        std::remove(FilesToRemove->back().c_str());
+        FilesToRemove->back().destroy_file();
       } catch (...) {
       }
       FilesToRemove->pop_back();
index 692a0476b1f7b4bb882277ecc0aa2383301f90d8..908ae84c4b7a2aa177be786df29c8c338ae3796d 100644 (file)
@@ -13,6 +13,7 @@
 
 #include "Win32.h"
 #include <llvm/System/Signals.h>
+#include <stdio.h>
 #include <vector>
 
 #ifdef __MINGW_H
@@ -29,7 +30,7 @@
 static LONG WINAPI LLVMUnhandledExceptionFilter(LPEXCEPTION_POINTERS ep);
 static BOOL WINAPI LLVMConsoleCtrlHandler(DWORD dwCtrlType);
 
-static std::vector<std::string> *FilesToRemove = NULL;
+static std::vector<llvm::sys::Path> *FilesToRemove = NULL;
 static std::vector<llvm::sys::Path> *DirectoriesToRemove = NULL;
 static bool RegisteredUnhandledExceptionFilter = false;
 static bool CleanupExecuted = false;
@@ -78,9 +79,9 @@ void sys::RemoveFileOnSignal(const std::string &Filename) {
     throw std::string("Process terminating -- cannot register for removal");
 
   if (FilesToRemove == NULL)
-    FilesToRemove = new std::vector<std::string>;
+    FilesToRemove = new std::vector<sys::Path>;
 
-  FilesToRemove->push_back(Filename);
+  FilesToRemove->push_back(sys::Path(Filename));
 
   LeaveCriticalSection(&CriticalSection);
 }
@@ -123,7 +124,7 @@ static void Cleanup() {
   if (FilesToRemove != NULL)
     while (!FilesToRemove->empty()) {
       try {
-        std::remove(FilesToRemove->back().c_str());
+        FilesToRemove->back().destroy_file();
       } catch (...) {
       }
       FilesToRemove->pop_back();