summaryrefslogtreecommitdiff
path: root/tools/llvm-ar/Archive.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/llvm-ar/Archive.cpp')
-rw-r--r--tools/llvm-ar/Archive.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/tools/llvm-ar/Archive.cpp b/tools/llvm-ar/Archive.cpp
index 70fddcfe4d..c733652e58 100644
--- a/tools/llvm-ar/Archive.cpp
+++ b/tools/llvm-ar/Archive.cpp
@@ -29,7 +29,7 @@ using namespace llvm;
unsigned
ArchiveMember::getMemberSize() const {
// Basically its the file size plus the header size
- unsigned result = info.fileSize + sizeof(ArchiveMemberHeader);
+ unsigned result = Size + sizeof(ArchiveMemberHeader);
// If it has a long filename, include the name length
if (hasLongFilename())
@@ -47,11 +47,11 @@ ArchiveMember::getMemberSize() const {
ArchiveMember::ArchiveMember()
: parent(0), path("--invalid--"), flags(0), data(0)
{
- info.user = sys::Process::GetCurrentUserId();
- info.group = sys::Process::GetCurrentGroupId();
- info.mode = 0777;
- info.fileSize = 0;
- info.modTime = sys::TimeValue::now();
+ User = sys::Process::GetCurrentUserId();
+ Group = sys::Process::GetCurrentGroupId();
+ Mode = 0777;
+ Size = 0;
+ ModTime = sys::TimeValue::now();
}
// This is the constructor that the Archive class uses when it is building or
@@ -117,10 +117,13 @@ bool ArchiveMember::replaceWith(StringRef newFile, std::string* ErrMsg) {
signature = magic.c_str();
sys::PathWithStatus PWS(path);
const sys::FileStatus *FSinfo = PWS.getFileStatus(false, ErrMsg);
- if (FSinfo)
- info = *FSinfo;
- else
+ if (!FSinfo)
return true;
+ User = FSinfo->getUser();
+ Group = FSinfo->getGroup();
+ Mode = FSinfo->getMode();
+ ModTime = FSinfo->getTimestamp();
+ Size = FSinfo->getSize();
}
// Determine what kind of file it is.