SVN commit 636952 by orlovich: Apply suggestion by Batiste Bieler to fix performance regression due to Unicode support in regexp code: disable UTF8 validation in libPCRE, since it's incredibly slow. CCMAIL:batiste@dosimple.ch M +4 -3 regexp.cpp --- branches/KDE/3.5/kdelibs/kjs/regexp.cpp #636951:636952 @@ -139,7 +139,7 @@ pcreflags |= PCRE_MULTILINE; if (utf8Support == Supported) - pcreflags |= PCRE_UTF8; + pcreflags |= (PCRE_UTF8 | PCRE_NO_UTF8_CHECK); // Fill our buffer with an encoded version, whether utf-8, or, // if PCRE is incapable, truncated. @@ -329,8 +329,9 @@ nextPos = i + 1; } + int baseFlags = utf8Support == Supported ? PCRE_NO_UTF8_CHECK : 0; if (pcre_exec(pcregex, NULL, buffer, bufferSize, startPos, - m_notEmpty ? (PCRE_NOTEMPTY | PCRE_ANCHORED) : 0, // see man pcretest + m_notEmpty ? (PCRE_NOTEMPTY | PCRE_ANCHORED | baseFlags) : baseFlags, // see man pcretest ovector ? *ovector : 0L, ovecsize) == PCRE_ERROR_NOMATCH) { // Failed to match. @@ -343,7 +344,7 @@ fprintf(stderr, "No match after m_notEmpty. +1 and keep going.\n"); #endif m_notEmpty = 0; - if (pcre_exec(pcregex, NULL, buffer, bufferSize, nextPos, 0, + if (pcre_exec(pcregex, NULL, buffer, bufferSize, nextPos, baseFlags, ovector ? *ovector : 0L, ovecsize) == PCRE_ERROR_NOMATCH) return UString::null; }