Remove last use of PathV1.h from Archive.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184484 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola
2013-06-20 22:02:10 +00:00
parent 4010e43810
commit bdae6fa82c
3 changed files with 30 additions and 9 deletions

View File

@@ -18,7 +18,6 @@
#include "llvm/IR/Module.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/PathV1.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/system_error.h"
#include <cstring>
@@ -109,15 +108,21 @@ bool ArchiveMember::replaceWith(StringRef newFile, std::string* ErrMsg) {
if (!signature) {
sys::fs::get_magic(path, magic.capacity(), magic);
signature = magic.c_str();
sys::PathWithStatus PWS(path);
const sys::FileStatus *FSinfo = PWS.getFileStatus(false, ErrMsg);
if (!FSinfo)
sys::fs::file_status Status;
error_code EC = sys::fs::status(path, Status);
if (EC)
return true;
User = Status.getUser();
Group = Status.getGroup();
Mode = Status.permissions();
ModTime = Status.getLastModificationTime();
// FIXME: On posix this is a second stat.
EC = sys::fs::file_size(path, Size);
if (EC)
return true;
User = FSinfo->getUser();
Group = FSinfo->getGroup();
Mode = FSinfo->getMode();
ModTime = FSinfo->getTimestamp();
Size = FSinfo->getSize();
}
// Determine what kind of file it is.