For PR797:

Change the Path::make*OnDisk methods exception free and adjust their usage.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29836 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer
2006-08-22 23:27:23 +00:00
parent ab96bb1df3
commit e1647f4698
4 changed files with 49 additions and 20 deletions

View File

@@ -390,19 +390,28 @@ static bool AddPermissionBits(const Path &File, int bits) {
return true;
}
void Path::makeReadableOnDisk() {
if (!AddPermissionBits(*this, 0444))
ThrowErrno(path + ": can't make file readable");
bool Path::makeReadableOnDisk(std::string* ErrMsg) {
if (!AddPermissionBits(*this, 0444)) {
MakeErrMsg(ErrMsg, path + ": can't make file readable");
return true;
}
return false;
}
void Path::makeWriteableOnDisk() {
if (!AddPermissionBits(*this, 0222))
ThrowErrno(path + ": can't make file writable");
bool Path::makeWriteableOnDisk(std::string* ErrMsg) {
if (!AddPermissionBits(*this, 0222)) {
MakeErrMsg(ErrMsg, path + ": can't make file writable");
return true;
}
return false;
}
void Path::makeExecutableOnDisk() {
if (!AddPermissionBits(*this, 0111))
ThrowErrno(path + ": can't make file executable");
bool Path::makeExecutableOnDisk(std::string* ErrMsg) {
if (!AddPermissionBits(*this, 0111)) {
MakeErrMsg(ErrMsg, path + ": can't make file executable");
return true;
}
return false;
}
bool