Changes in directory llvm/tools/llvm-ar:
llvm-ar.cpp updated: 1.41 -> 1.42 --- Log message: For PR789: http://llvm.org/PR789 : Make the sys::Path::getFileStatus function more efficient by having it return a pointer to the FileStatus structure rather than copy it. Adjust uses of the function accordingly. Also, fix some memory issues in sys::Path. --- Diffs of the changes: (+16 -16) llvm-ar.cpp | 32 ++++++++++++++++---------------- 1 files changed, 16 insertions(+), 16 deletions(-) Index: llvm/tools/llvm-ar/llvm-ar.cpp diff -u llvm/tools/llvm-ar/llvm-ar.cpp:1.41 llvm/tools/llvm-ar/llvm-ar.cpp:1.42 --- llvm/tools/llvm-ar/llvm-ar.cpp:1.41 Thu Mar 29 12:29:59 2007 +++ llvm/tools/llvm-ar/llvm-ar.cpp Thu Mar 29 14:05:44 2007 @@ -281,16 +281,16 @@ for (std::set<sys::Path>::iterator I = content.begin(), E = content.end(); I != E; ++I) { // Make sure it exists and is a directory - sys::FileStatus Status; - if (I->getFileStatus(Status)) { - if (Status.isDir) { - std::set<sys::Path> moreResults; - if (recurseDirectories(*I, moreResults, ErrMsg)) - return true; - result.insert(moreResults.begin(), moreResults.end()); - } else { + const sys::FileStatus *Status = I->getFileStatus(false, ErrMsg); + if (!Status) + return true; + if (Status->isDir) { + std::set<sys::Path> moreResults; + if (recurseDirectories(*I, moreResults, ErrMsg)) + return true; + result.insert(moreResults.begin(), moreResults.end()); + } else { result.insert(*I); - } } } } @@ -308,11 +308,11 @@ if (checkExistence) { if (!aPath.exists()) throw std::string("File does not exist: ") + Members[i]; - sys::FileStatus si; std::string Err; - if (aPath.getFileStatus(si, false, &Err)) + const sys::FileStatus *si = aPath.getFileStatus(false, &Err); + if (!si) throw Err; - if (si.isDir) { + if (si->isDir) { std::set<sys::Path> dirpaths; if (recurseDirectories(aPath, dirpaths, ErrMsg)) return true; @@ -644,14 +644,14 @@ } if (found != remaining.end()) { - sys::FileStatus si; std::string Err; - if (found->getFileStatus(si, false, &Err)) + const sys::FileStatus *si = found->getFileStatus(false, &Err); + if (!si) return true; - if (si.isDir) { + if (si->isDir) { if (OnlyUpdate) { // Replace the item only if it is newer. - if (si.modTime > I->getModTime()) + if (si->modTime > I->getModTime()) if (I->replaceWith(*found, ErrMsg)) return true; } else { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits