From: Chris Lattner Date: Tue, 15 Feb 2005 22:12:10 +0000 (+0000) Subject: Instead of doing a manual comparison loop, just use memcmp, thanks to JohnC X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2ee51cbeb8f83f0b04d9611535151c801bbe3d4b;p=oota-llvm.git 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 --- diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp index 6ac9bc91bc3..0a6e154d926 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 +#include 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!