mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 19:12:56 +02:00
Use getFileStatus instead of Path::isDirectory().
llvm-svn: 29443
This commit is contained in:
parent
863cb9ca93
commit
401b6d696e
@ -21,6 +21,7 @@
|
||||
#if HAVE_SIGNAL_H
|
||||
#include <signal.h>
|
||||
#endif
|
||||
using namespace llvm;
|
||||
|
||||
namespace {
|
||||
|
||||
@ -30,7 +31,7 @@ bool StackTraceRequested = false;
|
||||
void (*InterruptFunction)() = 0;
|
||||
|
||||
std::vector<std::string> *FilesToRemove = 0 ;
|
||||
std::vector<llvm::sys::Path> *DirectoriesToRemove = 0;
|
||||
std::vector<sys::Path> *DirectoriesToRemove = 0;
|
||||
|
||||
// IntSigs - Signals that may interrupt the program at any time.
|
||||
const int IntSigs[] = {
|
||||
@ -146,7 +147,6 @@ void RegisterHandler(int Signal) {
|
||||
|
||||
}
|
||||
|
||||
namespace llvm {
|
||||
|
||||
void sys::SetInterruptFunction(void (*IF)()) {
|
||||
InterruptFunction = IF;
|
||||
@ -165,8 +165,10 @@ void sys::RemoveFileOnSignal(const sys::Path &Filename) {
|
||||
}
|
||||
|
||||
// RemoveDirectoryOnSignal - The public API
|
||||
void sys::RemoveDirectoryOnSignal(const llvm::sys::Path& path) {
|
||||
if (!path.isDirectory())
|
||||
void sys::RemoveDirectoryOnSignal(const sys::Path& path) {
|
||||
// Not a directory?
|
||||
sys::FileStatus Status;
|
||||
if (path.getFileStatus(Status) || !Status.isDir)
|
||||
return;
|
||||
|
||||
if (DirectoriesToRemove == 0)
|
||||
@ -184,6 +186,3 @@ void sys::PrintStackTraceOnErrorSignal() {
|
||||
StackTraceRequested = true;
|
||||
std::for_each(KillSigs, KillSigsEnd, RegisterHandler);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -96,17 +96,19 @@ void sys::RemoveFileOnSignal(const sys::Path &Filename) {
|
||||
|
||||
// RemoveDirectoryOnSignal - The public API
|
||||
void sys::RemoveDirectoryOnSignal(const sys::Path& path) {
|
||||
// Not a directory?
|
||||
sys::FileStatus Status;
|
||||
if (path.getFileStatus(Status) || !Status.isDir)
|
||||
return;
|
||||
|
||||
RegisterHandler();
|
||||
|
||||
if (CleanupExecuted)
|
||||
throw std::string("Process terminating -- cannot register for removal");
|
||||
|
||||
if (path.isDirectory()) {
|
||||
if (DirectoriesToRemove == NULL)
|
||||
DirectoriesToRemove = new std::vector<sys::Path>;
|
||||
|
||||
DirectoriesToRemove->push_back(path);
|
||||
}
|
||||
if (DirectoriesToRemove == NULL)
|
||||
DirectoriesToRemove = new std::vector<sys::Path>;
|
||||
DirectoriesToRemove->push_back(path);
|
||||
|
||||
LeaveCriticalSection(&CriticalSection);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user