From 73637b7d1a01ca7db5fabe9a6fd5107bafd3c4c6 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Fri, 20 Sep 2013 16:22:12 +0200 Subject: Remove qBinaryFind usages from bootstrapped files This is done per the mailing list discussion at http://www.mail-archive.com/development@qt-project.org/msg01603.html Change-Id: I492b49553bc889892f5ca0c47aa13c75e11518e2 Reviewed-by: Olivier Goffart --- src/corelib/tools/qchar.cpp | 10 ++++++---- src/corelib/tools/qregexp.cpp | 8 +++++--- 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'src/corelib/tools') diff --git a/src/corelib/tools/qchar.cpp b/src/corelib/tools/qchar.cpp index dbd8a81b92..5de06d8c4a 100644 --- a/src/corelib/tools/qchar.cpp +++ b/src/corelib/tools/qchar.cpp @@ -54,6 +54,8 @@ #include "qunicodetables_p.h" #include "qunicodetables.cpp" +#include + QT_BEGIN_NAMESPACE #define FLAG(x) (1 << (x)) @@ -1719,13 +1721,13 @@ static uint inline ligatureHelper(uint u1, uint u2) ushort length = *ligatures++; if (QChar::requiresSurrogates(u1)) { const UCS2SurrogatePair *data = reinterpret_cast(ligatures); - const UCS2SurrogatePair *r = qBinaryFind(data, data + length, u1); - if (r != data + length) + const UCS2SurrogatePair *r = std::lower_bound(data, data + length, u1); + if (r != data + length && QChar::surrogateToUcs4(r->p1.u1, r->p1.u2) == u1) return QChar::surrogateToUcs4(r->p2.u1, r->p2.u2); } else { const UCS2Pair *data = reinterpret_cast(ligatures); - const UCS2Pair *r = qBinaryFind(data, data + length, ushort(u1)); - if (r != data + length) + const UCS2Pair *r = std::lower_bound(data, data + length, ushort(u1)); + if (r != data + length && r->u1 == ushort(u1)) return r->u2; } diff --git a/src/corelib/tools/qregexp.cpp b/src/corelib/tools/qregexp.cpp index 83e87ff637..086cdeb108 100644 --- a/src/corelib/tools/qregexp.cpp +++ b/src/corelib/tools/qregexp.cpp @@ -56,6 +56,7 @@ #include "private/qfunctions_p.h" #include +#include QT_BEGIN_NAMESPACE @@ -1537,7 +1538,7 @@ void QRegExpEngine::addPlusTransitions(const QVector &from, const QVector 2 && category.at(0) == 'I' && category.at(1) == 's') { static const int N = sizeof(categoriesRangeMap) / sizeof(categoriesRangeMap[0]); - const CategoriesRangeMapEntry *r = qBinaryFind(categoriesRangeMap, categoriesRangeMap + N, category.constData() + 2); - if (r != categoriesRangeMap + N) + const char * const categoryFamily = category.constData() + 2; + const CategoriesRangeMapEntry *r = std::lower_bound(categoriesRangeMap, categoriesRangeMap + N, categoryFamily); + if (r != categoriesRangeMap + N && qstrcmp(r->name, categoryFamily) == 0) yyCharClass->addRange(r->first, r->second); else error(RXERR_CATEGORY); -- cgit v1.2.3