From 2ee51cbeb8f83f0b04d9611535151c801bbe3d4b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 15 Feb 2005 22:12:10 +0000 Subject: 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 --- lib/Support/FileUtilities.cpp | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'lib/Support') 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 +#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! -- cgit v1.1