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