diff options
author | Chris Lattner <sabre@nondot.org> | 2006-07-28 22:03:44 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-07-28 22:03:44 +0000 |
commit | 252ad03d7db0add504fdcc6bd67c1bc1e28bdd57 (patch) | |
tree | b53953cdbf21813671a66e76191e4bd39c4bf6e7 /tools/llvm-ar | |
parent | 3236ced25f152ca3035b335008056cd91af5f8bf (diff) |
Change Path::getStatusInfo to return a boolean and error string on an error
instead of throwing an exception. This reduces the amount of code that is
exposed to exceptions (e.g. FileUtilities), though it is clearly only one step
along the way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29395 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/llvm-ar')
-rw-r--r-- | tools/llvm-ar/llvm-ar.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp index 8bc9e048da..2ec431727a 100644 --- a/tools/llvm-ar/llvm-ar.cpp +++ b/tools/llvm-ar/llvm-ar.cpp @@ -299,8 +299,10 @@ void buildPaths(bool checkExistence = true) { if (checkExistence) { if (!aPath.exists()) throw std::string("File does not exist: ") + Members[i]; - sys::Path::StatusInfo si; - aPath.getStatusInfo(si); + sys::FileStatus si; + std::string Err; + if (aPath.getFileStatus(si, &Err)) + throw Err; if (si.isDir) { std::set<sys::Path> dirpaths = recurseDirectories(aPath); Paths.insert(dirpaths.begin(),dirpaths.end()); @@ -456,7 +458,7 @@ void doExtract() { // If we're supposed to retain the original modification times, etc. do so // now. if (OriginalDates) - I->getPath().setStatusInfoOnDisk(I->getStatusInfo()); + I->getPath().setStatusInfoOnDisk(I->getFileStatus()); } } } @@ -610,8 +612,10 @@ void doReplaceOrInsert() { } if (found != remaining.end()) { - sys::Path::StatusInfo si; - found->getStatusInfo(si); + sys::FileStatus si; + std::string Err; + if (found->getFileStatus(si, &Err)) + throw Err; if (si.isDir) { if (OnlyUpdate) { // Replace the item only if it is newer. |