summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-07-28 22:36:17 +0000
committerChris Lattner <sabre@nondot.org>2006-07-28 22:36:17 +0000
commit60c5064538bea30bda9907e395a90a74b9a4098b (patch)
tree4af305cc40fccde5a80868a3f92a1ba82c6d4278 /llvm/lib
parent60fbecabf82abde96397ab9c5206bb4da4c6d01d (diff)
downloadbcm5719-llvm-60c5064538bea30bda9907e395a90a74b9a4098b.tar.gz
bcm5719-llvm-60c5064538bea30bda9907e395a90a74b9a4098b.zip
Modify setStatusInfoOnDisk to not throw an exception.
llvm-svn: 29402
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/System/Unix/Path.inc8
-rw-r--r--llvm/lib/System/Win32/Path.inc16
2 files changed, 12 insertions, 12 deletions
diff --git a/llvm/lib/System/Unix/Path.inc b/llvm/lib/System/Unix/Path.inc
index 26f29c0bc0c..f26315cea62 100644
--- a/llvm/lib/System/Unix/Path.inc
+++ b/llvm/lib/System/Unix/Path.inc
@@ -647,15 +647,15 @@ Path::renamePathOnDisk(const Path& newName) {
}
bool
-Path::setStatusInfoOnDisk(const FileStatus &si) const {
+Path::setStatusInfoOnDisk(const FileStatus &si, std::string *ErrStr) const {
struct utimbuf utb;
utb.actime = si.modTime.toPosixTime();
utb.modtime = utb.actime;
if (0 != ::utime(path.c_str(),&utb))
- ThrowErrno(path + ": can't set file modification time");
+ return GetErrno(path + ": can't set file modification time", ErrStr);
if (0 != ::chmod(path.c_str(),si.mode))
- ThrowErrno(path + ": can't set mode");
- return true;
+ return GetErrno(path + ": can't set mode", ErrStr);
+ return false;
}
void
diff --git a/llvm/lib/System/Win32/Path.inc b/llvm/lib/System/Win32/Path.inc
index a7c7d21bcf0..7c14ea7df47 100644
--- a/llvm/lib/System/Win32/Path.inc
+++ b/llvm/lib/System/Win32/Path.inc
@@ -693,9 +693,9 @@ Path::renamePathOnDisk(const Path& newName) {
}
bool
-Path::setStatusInfoOnDisk(const FileStatus &si) const {
+Path::setStatusInfoOnDisk(const FileStatus &si, std::string *ErrStr) const {
// FIXME: should work on directories also.
- if (!isFile()) return false;
+ if (!isFile()) return true;
HANDLE h = CreateFile(path.c_str(),
FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES,
@@ -705,14 +705,14 @@ Path::setStatusInfoOnDisk(const FileStatus &si) const {
FILE_ATTRIBUTE_NORMAL,
NULL);
if (h == INVALID_HANDLE_VALUE)
- return false;
+ return true;
BY_HANDLE_FILE_INFORMATION bhfi;
if (!GetFileInformationByHandle(h, &bhfi)) {
DWORD err = GetLastError();
CloseHandle(h);
SetLastError(err);
- ThrowError(path + ": GetFileInformationByHandle: ");
+ return GetError(path + ": GetFileInformationByHandle: ", ErrStr);
}
FILETIME ft;
@@ -722,7 +722,7 @@ Path::setStatusInfoOnDisk(const FileStatus &si) const {
CloseHandle(h);
if (!ret) {
SetLastError(err);
- ThrowError(path + ": SetFileTime: ");
+ return GetError(path + ": SetFileTime: ", ErrStr);
}
// Best we can do with Unix permission bits is to interpret the owner
@@ -731,17 +731,17 @@ Path::setStatusInfoOnDisk(const FileStatus &si) const {
if (bhfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
if (!SetFileAttributes(path.c_str(),
bhfi.dwFileAttributes & ~FILE_ATTRIBUTE_READONLY))
- ThrowError(path + ": SetFileAttributes: ");
+ return GetError(path + ": SetFileAttributes: ", ErrStr);
}
} else {
if (!(bhfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) {
if (!SetFileAttributes(path.c_str(),
bhfi.dwFileAttributes | FILE_ATTRIBUTE_READONLY))
- ThrowError(path + ": SetFileAttributes: ");
+ return GetError(path + ": SetFileAttributes: ", ErrStr);
}
}
- return true;
+ return false;
}
void
OpenPOWER on IntegriCloud