summaryrefslogtreecommitdiff
path: root/lib/Support/Unix/Path.inc
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2013-07-10 17:16:40 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2013-07-10 17:16:40 +0000
commitac2de33d2aaa076dc54ce2cea675bcca5b50261e (patch)
treee6e772d229275c7201d1c3afa62097f0931a115a /lib/Support/Unix/Path.inc
parent43ae5e85f829df883dd364c0b9612bbe90f3ad97 (diff)
downloadllvm-ac2de33d2aaa076dc54ce2cea675bcca5b50261e.tar.gz
llvm-ac2de33d2aaa076dc54ce2cea675bcca5b50261e.tar.bz2
llvm-ac2de33d2aaa076dc54ce2cea675bcca5b50261e.tar.xz
Use status to implement file_size.
The status function is already using a syscall that returns the file size. Remember it and implement file_size as a simple wrapper. No functionally change, but clients that already use status now can avoid calling file_size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186016 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/Unix/Path.inc')
-rw-r--r--lib/Support/Unix/Path.inc15
1 files changed, 1 insertions, 14 deletions
diff --git a/lib/Support/Unix/Path.inc b/lib/Support/Unix/Path.inc
index 433d187ffd..83879ff68d 100644
--- a/lib/Support/Unix/Path.inc
+++ b/lib/Support/Unix/Path.inc
@@ -529,20 +529,6 @@ error_code equivalent(const Twine &A, const Twine &B, bool &result) {
return error_code::success();
}
-error_code file_size(const Twine &path, uint64_t &result) {
- SmallString<128> path_storage;
- StringRef p = path.toNullTerminatedStringRef(path_storage);
-
- struct stat status;
- if (::stat(p.begin(), &status) == -1)
- return error_code(errno, system_category());
- if (!S_ISREG(status.st_mode))
- return make_error_code(errc::operation_not_permitted);
-
- result = status.st_size;
- return error_code::success();
-}
-
error_code getUniqueID(const Twine Path, uint64_t &Result) {
SmallString<128> Storage;
StringRef P = Path.toNullTerminatedStringRef(Storage);
@@ -591,6 +577,7 @@ error_code status(const Twine &path, file_status &result) {
result.fs_st_mtime = status.st_mtime;
result.fs_st_uid = status.st_uid;
result.fs_st_gid = status.st_gid;
+ result.fs_st_size = status.st_size;
return error_code::success();
}