line. Turns out edit_distance can be slow if the string we are scanning for
happens to be quite large.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94860
91177308-0d34-0410-b5e6-
96231b3b80d8
if (ExampleString.empty())
ExampleString = RegExStr;
- return Buffer.substr(0, ExampleString.size()).edit_distance(ExampleString);
+ // Only compare up to the first line in the buffer, or the string size.
+ StringRef BufferPrefix = Buffer.substr(0, ExampleString.size());
+ BufferPrefix = BufferPrefix.split('\n').first;
+ return BufferPrefix.edit_distance(ExampleString);
}
void Pattern::PrintFailureInfo(const SourceMgr &SM, StringRef Buffer,