summaryrefslogtreecommitdiff
path: root/lib/Support/FileUtilities.cpp
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-08-22 16:06:27 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-08-22 16:06:27 +0000
commit862796959796d69fa490107d880854739660ffad (patch)
treef4bdf140c1ad22f60b8f3837f1ec02f9121e31b3 /lib/Support/FileUtilities.cpp
parent6d045fcdcd4fe83f51050f6601726d29b2689526 (diff)
downloadllvm-862796959796d69fa490107d880854739660ffad.tar.gz
llvm-862796959796d69fa490107d880854739660ffad.tar.bz2
llvm-862796959796d69fa490107d880854739660ffad.tar.xz
For PR797:
Adjust users of MappedFile to its new non-throwing interface. Note that in most cases the lazy step of just throwing after a call to MappedFile was installed. This was done in the name of incremental changes. Getting rid of the new throw statements will take adjustment of interfaces and propagation of errors to higher levels. Those changes will come in subsequent patches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29817 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/FileUtilities.cpp')
-rw-r--r--lib/Support/FileUtilities.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp
index d4608ccb65..313598942a 100644
--- a/lib/Support/FileUtilities.cpp
+++ b/lib/Support/FileUtilities.cpp
@@ -147,9 +147,11 @@ int llvm::DiffFilesWithTolerance(const sys::Path &FileA,
double AbsTol, double RelTol,
std::string *Error) {
sys::FileStatus FileAStat, FileBStat;
- if (FileA.getFileStatus(FileAStat, Error) ||
- FileB.getFileStatus(FileBStat, Error))
+ if (FileA.getFileStatus(FileAStat, Error))
return 2;
+ if (FileB.getFileStatus(FileBStat, Error))
+ return 2;
+
// Check for zero length files because some systems croak when you try to
// mmap an empty file.
size_t A_size = FileAStat.getSize();
@@ -165,10 +167,16 @@ int llvm::DiffFilesWithTolerance(const sys::Path &FileA,
try {
// Now its safe to mmap the files into memory becasue both files
// have a non-zero size.
- sys::MappedFile F1(FileA);
- sys::MappedFile F2(FileB);
- F1.map();
- F2.map();
+ sys::MappedFile F1;
+ if (F1.open(FileA, sys::MappedFile::READ_ACCESS, Error))
+ return 2;
+ sys::MappedFile F2;
+ if (F2.open(FileB, sys::MappedFile::READ_ACCESS, Error))
+ return 2;
+ if (!F1.map(Error))
+ return 2;
+ if (!F2.map(Error))
+ return 2;
// Okay, now that we opened the files, scan them for the first difference.
char *File1Start = F1.charBase();