diff -r b72c6db6890b -r 5dc02b23752f src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp --- a/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp Wed Jun 23 19:07:03 2010 +0300 +++ b/src/3rdparty/webkit/JavaScriptCore/runtime/RegExp.cpp Tue Jul 06 15:10:48 2010 +0300 @@ -40,20 +40,12 @@ #else -#if ENABLE(WREC) -#include "JIT.h" -#include "WRECGenerator.h" -#endif #include #endif namespace JSC { -#if ENABLE(WREC) -using namespace WREC; -#endif - inline RegExp::RegExp(JSGlobalData* globalData, const UString& pattern) : m_pattern(pattern) , m_flagBits(0) @@ -65,18 +57,17 @@ inline RegExp::RegExp(JSGlobalData* globalData, const UString& pattern, const UString& flags) : m_pattern(pattern) - , m_flags(flags) , m_flagBits(0) , m_constructionError(0) , m_numSubpatterns(0) { // NOTE: The global flag is handled on a case-by-case basis by functions like // String::match and RegExpObject::match. - if (flags.find('g') != -1) + if (flags.find('g') != UString::NotFound) m_flagBits |= Global; - if (flags.find('i') != -1) + if (flags.find('i') != UString::NotFound) m_flagBits |= IgnoreCase; - if (flags.find('m') != -1) + if (flags.find('m') != UString::NotFound) m_flagBits |= Multiline; compile(globalData); @@ -118,7 +109,7 @@ if (ovector) ovector->clear(); - if (startOffset > s.size() || s.isNull()) + if (static_cast(startOffset) > s.size() || s.isNull()) return -1; #if ENABLE(YARR_JIT) @@ -165,18 +156,9 @@ #else -void RegExp::compile(JSGlobalData* globalData) +void RegExp::compile(JSGlobalData*) { m_regExp = 0; -#if ENABLE(WREC) - m_wrecFunction = Generator::compileRegExp(globalData, m_pattern, &m_numSubpatterns, &m_constructionError, m_executablePool, ignoreCase(), multiline()); - if (m_wrecFunction || m_constructionError) - return; - // Fall through to non-WREC case. -#else - UNUSED_PARAM(globalData); -#endif - JSRegExpIgnoreCaseOption ignoreCaseOption = ignoreCase() ? JSRegExpIgnoreCase : JSRegExpDoNotIgnoreCase; JSRegExpMultilineOption multilineOption = multiline() ? JSRegExpMultiline : JSRegExpSingleLine; m_regExp = jsRegExpCompile(reinterpret_cast(m_pattern.data()), m_pattern.size(), ignoreCaseOption, multilineOption, &m_numSubpatterns, &m_constructionError); @@ -189,39 +171,9 @@ if (ovector) ovector->clear(); - if (startOffset > s.size() || s.isNull()) + if (static_cast(startOffset) > s.size() || s.isNull()) return -1; -#if ENABLE(WREC) - if (m_wrecFunction) { - int offsetVectorSize = (m_numSubpatterns + 1) * 2; - int* offsetVector; - Vector nonReturnedOvector; - if (ovector) { - ovector->resize(offsetVectorSize); - offsetVector = ovector->data(); - } else { - nonReturnedOvector.resize(offsetVectorSize); - offsetVector = nonReturnedOvector.data(); - } - ASSERT(offsetVector); - for (int j = 0; j < offsetVectorSize; ++j) - offsetVector[j] = -1; - - int result = m_wrecFunction(s.data(), startOffset, s.size(), offsetVector); - - if (result < 0) { -#ifndef NDEBUG - // TODO: define up a symbol, rather than magic -1 - if (result != -1) - fprintf(stderr, "jsRegExpExecute failed with result %d\n", result); -#endif - if (ovector) - ovector->clear(); - } - return result; - } else -#endif if (m_regExp) { // Set up the offset vector for the result. // First 2/3 used for result, the last third used by PCRE.