[llvm] r184910 - Remove PathWithStatus.

Rafael Espindola rafael.espindola at gmail.com
Tue Jun 25 21:15:55 PDT 2013


Author: rafael
Date: Tue Jun 25 23:15:55 2013
New Revision: 184910

URL: http://llvm.org/viewvc/llvm-project?rev=184910&view=rev
Log:
Remove PathWithStatus.

Modified:
    llvm/trunk/include/llvm/Support/PathV1.h
    llvm/trunk/lib/Support/Unix/Path.inc
    llvm/trunk/lib/Support/Windows/Path.inc

Modified: llvm/trunk/include/llvm/Support/PathV1.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/PathV1.h?rev=184910&r1=184909&r2=184910&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Support/PathV1.h (original)
+++ llvm/trunk/include/llvm/Support/PathV1.h Tue Jun 25 23:15:55 2013
@@ -405,92 +405,6 @@ namespace sys {
 
     /// @}
   };
-
-  /// This class is identical to Path class except it allows you to obtain the
-  /// file status of the Path as well. The reason for the distinction is one of
-  /// efficiency. First, the file status requires additional space and the space
-  /// is incorporated directly into PathWithStatus without an additional malloc.
-  /// Second, obtaining status information is an expensive operation on most
-  /// operating systems so we want to be careful and explicit about where we
-  /// allow this operation in LLVM.
-  /// @brief Path with file status class.
-  class PathWithStatus : public Path {
-    /// @name Constructors
-    /// @{
-    public:
-      /// @brief Default constructor
-      PathWithStatus() : Path(), status(), fsIsValid(false) {}
-
-      /// @brief Copy constructor
-      PathWithStatus(const PathWithStatus &that)
-        : Path(static_cast<const Path&>(that)), status(that.status),
-           fsIsValid(that.fsIsValid) {}
-
-      /// This constructor allows construction from a Path object
-      /// @brief Path constructor
-      PathWithStatus(const Path &other)
-        : Path(other), status(), fsIsValid(false) {}
-
-      /// This constructor will accept a char* or std::string as a path. No
-      /// checking is done on this path to determine if it is valid. To
-      /// determine validity of the path, use the isValid method.
-      /// @brief Construct a Path from a string.
-      explicit PathWithStatus(
-        StringRef p ///< The path to assign.
-      ) : Path(p), status(), fsIsValid(false) {}
-
-      /// This constructor will accept a character range as a path.  No checking
-      /// is done on this path to determine if it is valid.  To determine
-      /// validity of the path, use the isValid method.
-      /// @brief Construct a Path from a string.
-      explicit PathWithStatus(
-        const char *StrStart,  ///< Pointer to the first character of the path
-        unsigned StrLen        ///< Length of the path.
-      ) : Path(StrStart, StrLen), status(), fsIsValid(false) {}
-
-      /// Makes a copy of \p that to \p this.
-      /// @returns \p this
-      /// @brief Assignment Operator
-      PathWithStatus &operator=(const PathWithStatus &that) {
-        static_cast<Path&>(*this) = static_cast<const Path&>(that);
-        status = that.status;
-        fsIsValid = that.fsIsValid;
-        return *this;
-      }
-
-      /// Makes a copy of \p that to \p this.
-      /// @returns \p this
-      /// @brief Assignment Operator
-      PathWithStatus &operator=(const Path &that) {
-        static_cast<Path&>(*this) = static_cast<const Path&>(that);
-        fsIsValid = false;
-        return *this;
-      }
-
-    /// @}
-    /// @name Methods
-    /// @{
-    public:
-      /// This function returns status information about the file. The type of
-      /// path (file or directory) is updated to reflect the actual contents
-      /// of the file system.
-      /// @returns 0 on failure, with Error explaining why (if non-zero),
-      /// otherwise returns a pointer to a FileStatus structure on success.
-      /// @brief Get file status.
-      const FileStatus *getFileStatus(
-        bool forceUpdate = false, ///< Force an update from the file system
-        std::string *Error = 0    ///< Optional place to return an error msg.
-      ) const;
-
-    /// @}
-    /// @name Data
-    /// @{
-    private:
-      mutable FileStatus status; ///< Status information.
-      mutable bool fsIsValid;    ///< Whether we've obtained it or not
-
-    /// @}
-  };
 }
 
 }

Modified: llvm/trunk/lib/Support/Unix/Path.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Unix/Path.inc?rev=184910&r1=184909&r2=184910&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Unix/Path.inc (original)
+++ llvm/trunk/lib/Support/Unix/Path.inc Tue Jun 25 23:15:55 2013
@@ -332,26 +332,6 @@ Path::isRegularFile() const {
   return false;
 }
 
-const FileStatus *
-PathWithStatus::getFileStatus(bool update, std::string *ErrStr) const {
-  if (!fsIsValid || update) {
-    struct stat buf;
-    if (0 != stat(path.c_str(), &buf)) {
-      MakeErrMsg(ErrStr, path + ": can't get status of file");
-      return 0;
-    }
-    status.fileSize = buf.st_size;
-    status.modTime.fromEpochTime(buf.st_mtime);
-    status.mode = buf.st_mode;
-    status.user = buf.st_uid;
-    status.group = buf.st_gid;
-    status.isDir  = S_ISDIR(buf.st_mode);
-    status.isFile = S_ISREG(buf.st_mode);
-    fsIsValid = true;
-  }
-  return &status;
-}
-
 static bool AddPermissionBits(const Path &File, int bits) {
   // Get the umask value from the operating system.  We want to use it
   // when changing the file's permissions. Since calling umask() sets

Modified: llvm/trunk/lib/Support/Windows/Path.inc
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Windows/Path.inc?rev=184910&r1=184909&r2=184910&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Windows/Path.inc (original)
+++ llvm/trunk/lib/Support/Windows/Path.inc Tue Jun 25 23:15:55 2013
@@ -245,35 +245,6 @@ Path::isRegularFile() const {
   return res;
 }
 
-const FileStatus *
-PathWithStatus::getFileStatus(bool update, std::string *ErrStr) const {
-  if (!fsIsValid || update) {
-    WIN32_FILE_ATTRIBUTE_DATA fi;
-    if (!GetFileAttributesEx(path.c_str(), GetFileExInfoStandard, &fi)) {
-      MakeErrMsg(ErrStr, "getStatusInfo():" + std::string(path) +
-                      ": Can't get status: ");
-      return 0;
-    }
-
-    status.fileSize = fi.nFileSizeHigh;
-    status.fileSize <<= sizeof(fi.nFileSizeHigh)*8;
-    status.fileSize += fi.nFileSizeLow;
-
-    status.mode = fi.dwFileAttributes & FILE_ATTRIBUTE_READONLY ? 0555 : 0777;
-    status.user = 9999;    // Not applicable to Windows, so...
-    status.group = 9999;   // Not applicable to Windows, so...
-
-    ULARGE_INTEGER ui;
-    ui.LowPart = fi.ftLastWriteTime.dwLowDateTime;
-    ui.HighPart = fi.ftLastWriteTime.dwHighDateTime;
-    status.modTime.fromWin32Time(ui.QuadPart);
-
-    status.isDir = fi.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
-    fsIsValid = true;
-  }
-  return &status;
-}
-
 bool Path::makeReadableOnDisk(std::string* ErrMsg) {
   // All files are readable on Windows (ignoring security attributes).
   return false;





More information about the llvm-commits mailing list