[llvm] r184353 - Remove last use of PathV1.h from Archive.h

Rafael Espindola rafael.espindola at gmail.com
Wed Jun 19 14:13:59 PDT 2013


Author: rafael
Date: Wed Jun 19 16:13:59 2013
New Revision: 184353

URL: http://llvm.org/viewvc/llvm-project?rev=184353&view=rev
Log:
Remove last use of PathV1.h from Archive.h

Store the individual fields we need instead of a sys::FileStatus.

Modified:
    llvm/trunk/tools/llvm-ar/Archive.cpp
    llvm/trunk/tools/llvm-ar/Archive.h
    llvm/trunk/tools/llvm-ar/ArchiveInternals.h
    llvm/trunk/tools/llvm-ar/ArchiveReader.cpp
    llvm/trunk/tools/llvm-ar/ArchiveWriter.cpp
    llvm/trunk/tools/llvm-ar/llvm-ar.cpp

Modified: llvm/trunk/tools/llvm-ar/Archive.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ar/Archive.cpp?rev=184353&r1=184352&r2=184353&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-ar/Archive.cpp (original)
+++ llvm/trunk/tools/llvm-ar/Archive.cpp Wed Jun 19 16:13:59 2013
@@ -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(StringRe
     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.

Modified: llvm/trunk/tools/llvm-ar/Archive.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ar/Archive.h?rev=184353&r1=184352&r2=184353&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-ar/Archive.h (original)
+++ llvm/trunk/tools/llvm-ar/Archive.h Wed Jun 19 16:13:59 2013
@@ -20,7 +20,7 @@
 #include "llvm/ADT/ilist.h"
 #include "llvm/ADT/ilist_node.h"
 #include "llvm/Support/Path.h"
-#include "llvm/Support/PathV1.h"
+#include "llvm/Support/TimeValue.h"
 #include <map>
 #include <set>
 
@@ -72,28 +72,28 @@ class ArchiveMember : public ilist_node<
     /// have any applicability on non-Unix systems but is a required component
     /// of the "ar" file format.
     /// @brief Get the user associated with this archive member.
-    unsigned getUser() const             { return info.getUser(); }
+    unsigned getUser() const             { return User; }
 
     /// The "group" is the owning group of the file per Unix security. This
     /// may not have any applicability on non-Unix systems but is a required
     /// component of the "ar" file format.
     /// @brief Get the group associated with this archive member.
-    unsigned getGroup() const            { return info.getGroup(); }
+    unsigned getGroup() const            { return Group; }
 
     /// The "mode" specifies the access permissions for the file per Unix
     /// security. This may not have any applicability on non-Unix systems but is
     /// a required component of the "ar" file format.
     /// @brief Get the permission mode associated with this archive member.
-    unsigned getMode() const             { return info.getMode(); }
+    unsigned getMode() const             { return Mode; }
 
     /// This method returns the time at which the archive member was last
     /// modified when it was not in the archive.
     /// @brief Get the time of last modification of the archive member.
-    sys::TimeValue getModTime() const    { return info.getTimestamp(); }
+    sys::TimeValue getModTime() const    { return ModTime; }
 
     /// @returns the size of the archive member in bytes.
     /// @brief Get the size of the archive member.
-    uint64_t getSize() const             { return info.getSize(); }
+    uint64_t getSize() const             { return Size; }
 
     /// This method returns the total size of the archive member as it
     /// appears on disk. This includes the file content, the header, the
@@ -149,11 +149,15 @@ class ArchiveMember : public ilist_node<
   /// @name Data
   /// @{
   private:
-    Archive*            parent;   ///< Pointer to parent archive
-    std::string         path;     ///< Path of file containing the member
-    sys::FileStatus     info;     ///< Status info (size,mode,date)
-    unsigned            flags;    ///< Flags about the archive member
-    const char*         data;     ///< Data for the member
+    Archive *parent;  ///< Pointer to parent archive
+    std::string path; ///< Path of file containing the member
+    uint32_t User;
+    uint32_t Group;
+    uint32_t Mode;
+    sys::TimeValue ModTime;
+    uint64_t Size;
+    unsigned flags;   ///< Flags about the archive member
+    const char *data; ///< Data for the member
 
   /// @}
   /// @name Constructors

Modified: llvm/trunk/tools/llvm-ar/ArchiveInternals.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ar/ArchiveInternals.h?rev=184353&r1=184352&r2=184353&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-ar/ArchiveInternals.h (original)
+++ llvm/trunk/tools/llvm-ar/ArchiveInternals.h Wed Jun 19 16:13:59 2013
@@ -16,6 +16,7 @@
 
 #include "Archive.h"
 #include "llvm/ADT/StringExtras.h"
+#include "llvm/Support/PathV1.h"
 #include "llvm/Support/TimeValue.h"
 #include <cstring>
 

Modified: llvm/trunk/tools/llvm-ar/ArchiveReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ar/ArchiveReader.cpp?rev=184353&r1=184352&r2=184353&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-ar/ArchiveReader.cpp (original)
+++ llvm/trunk/tools/llvm-ar/ArchiveReader.cpp Wed Jun 19 16:13:59 2013
@@ -175,13 +175,13 @@ Archive::parseMemberHeader(const char*&
   // Fill in fields of the ArchiveMember
   member->parent = this;
   member->path = pathname;
-  member->info.fileSize = MemberSize;
-  member->info.modTime.fromEpochTime(atoi(Hdr->date));
+  member->Size = MemberSize;
+  member->ModTime.fromEpochTime(atoi(Hdr->date));
   unsigned int mode;
   sscanf(Hdr->mode, "%o", &mode);
-  member->info.mode = mode;
-  member->info.user = atoi(Hdr->uid);
-  member->info.group = atoi(Hdr->gid);
+  member->Mode = mode;
+  member->User = atoi(Hdr->uid);
+  member->Group = atoi(Hdr->gid);
   member->flags = flags;
   member->data = At;
 

Modified: llvm/trunk/tools/llvm-ar/ArchiveWriter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ar/ArchiveWriter.cpp?rev=184353&r1=184352&r2=184353&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-ar/ArchiveWriter.cpp (original)
+++ llvm/trunk/tools/llvm-ar/ArchiveWriter.cpp Wed Jun 19 16:13:59 2013
@@ -172,7 +172,11 @@ bool Archive::addFileBefore(StringRef fi
     delete mbr;
     return true;
   }
-  mbr->info = *FSInfo;
+  mbr->User = FSInfo->getUser();
+  mbr->Group = FSInfo->getGroup();
+  mbr->Mode = FSInfo->getMode();
+  mbr->ModTime = FSInfo->getTimestamp();
+  mbr->Size = FSInfo->getSize();
 
   unsigned flags = 0;
   bool hasSlash = filePath.str().find('/') != std::string::npos;

Modified: llvm/trunk/tools/llvm-ar/llvm-ar.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-ar/llvm-ar.cpp?rev=184353&r1=184352&r2=184353&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-ar/llvm-ar.cpp (original)
+++ llvm/trunk/tools/llvm-ar/llvm-ar.cpp Wed Jun 19 16:13:59 2013
@@ -19,6 +19,7 @@
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Format.h"
 #include "llvm/Support/ManagedStatic.h"
+#include "llvm/Support/PathV1.h"
 #include "llvm/Support/PrettyStackTrace.h"
 #include "llvm/Support/Signals.h"
 #include "llvm/Support/raw_ostream.h"





More information about the llvm-commits mailing list