diff options
author | Chris Lattner <sabre@nondot.org> | 2005-02-15 22:12:10 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-02-15 22:12:10 +0000 |
commit | 2ee51cbeb8f83f0b04d9611535151c801bbe3d4b (patch) | |
tree | 3051e755f4598f23bbf4ed2650ce22c2f150b5be /lib/Support/FileUtilities.cpp | |
parent | e4b6a86852966fa217630d09e5b61df25b43fda0 (diff) | |
download | external_llvm-2ee51cbeb8f83f0b04d9611535151c801bbe3d4b.zip external_llvm-2ee51cbeb8f83f0b04d9611535151c801bbe3d4b.tar.gz external_llvm-2ee51cbeb8f83f0b04d9611535151c801bbe3d4b.tar.bz2 |
Instead of doing a manual comparison loop, just use memcmp, thanks to JohnC
for the suggestion! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20203 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/FileUtilities.cpp')
-rw-r--r-- | lib/Support/FileUtilities.cpp | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp index 6ac9bc9..0a6e154 100644 --- a/lib/Support/FileUtilities.cpp +++ b/lib/Support/FileUtilities.cpp @@ -17,6 +17,7 @@ #include "llvm/System/MappedFile.h" #include "llvm/ADT/StringExtras.h" #include <cmath> +#include <cstring> using namespace llvm; static bool isNumberChar(char C) { @@ -141,19 +142,15 @@ int llvm::DiffFilesWithTolerance(const sys::Path &FileA, // Okay, now that we opened the files, scan them for the first difference. char *File1Start = F1.charBase(); char *File2Start = F2.charBase(); - char *File1End = File1Start+F1.size(); - char *File2End = File2Start+F2.size(); + char *File1End = File1Start+A_size; + char *File2End = File2Start+B_size; char *F1P = File1Start; char *F2P = File2Start; if (A_size == B_size) { - // Scan for the end of file or first difference. - while (F1P < File1End && *F1P == *F2P) - ++F1P, ++F2P; - - // Common case: identifical files. - if (F1P == File1End) - return 0; // Scanned to end, files same + // Are the buffers identical? + if (std::memcmp(File1Start, File2Start, A_size) == 0) + return 0; if (AbsTol == 0 && RelTol == 0) return 1; // Files different! |