diff --git a/modules/juce_core/text/juce_TextDiff.cpp b/modules/juce_core/text/juce_TextDiff.cpp index 177cd130d0..da1a47fd4d 100644 --- a/modules/juce_core/text/juce_TextDiff.cpp +++ b/modules/juce_core/text/juce_TextDiff.cpp @@ -116,6 +116,7 @@ struct TextDiffHelpers int* l0 = lines; int* l1 = l0 + lenB + 1; + int loopsWithoutImprovement = 0; int bestLength = 0; indexInA = indexInB = 0; @@ -137,6 +138,7 @@ struct TextDiffHelpers if (len > bestLength) { + loopsWithoutImprovement = 0; bestLength = len; indexInA = i; indexInB = j; @@ -144,6 +146,9 @@ struct TextDiffHelpers } } + if (++loopsWithoutImprovement > 100) + break; + std::swap (l0, l1); }