Use the stat information in the Path object, if it is already obtained. This
avoids a call to ::fstat by MappedFile when the file size information was
already obtained by the Path object.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35477 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/System/Unix/MappedFile.inc b/lib/System/Unix/MappedFile.inc
index 4dccd13..5e76e2b 100644
--- a/lib/System/Unix/MappedFile.inc
+++ b/lib/System/Unix/MappedFile.inc
@@ -54,15 +54,14 @@
MakeErrMsg(ErrMsg, "can't open file '" + path_.toString() + "'");
return true;
}
- struct stat sbuf;
- if(::fstat(FD, &sbuf) < 0) {
- MakeErrMsg(ErrMsg, "can't stat file '"+ path_.toString() + "'");
+ const FileStatus *Status = path_.getFileStatus(false, ErrMsg);
+ if (!Status) {
::close(FD);
return true;
}
info_ = new MappedFileInfo;
info_->FD = FD;
- info_->Size = sbuf.st_size;
+ info_->Size = Status->getSize();
return false;
}