diff options
author | Konstantin Ritt <ritt.ks@gmail.com> | 2014-03-06 12:02:25 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-10 15:05:01 +0100 |
commit | 11eb9d37dc191b6e71c903e4f7f4d2da579e7df5 (patch) | |
tree | f2f5695fe82251000b969410bb4860a5ffdecc0d /src/gui/text/qharfbuzzng.cpp | |
parent | ca280bfe3bc551f814d59d25079e098798fbdad7 (diff) |
Use QStringIterator instead of homebrew
Task-number: QTBUG-15664
Change-Id: I1ed3eb04ddd822e57a4d993af656dfe283f3af1a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'src/gui/text/qharfbuzzng.cpp')
-rw-r--r-- | src/gui/text/qharfbuzzng.cpp | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/gui/text/qharfbuzzng.cpp b/src/gui/text/qharfbuzzng.cpp index f7a1d30e6f..1258ea9a78 100644 --- a/src/gui/text/qharfbuzzng.cpp +++ b/src/gui/text/qharfbuzzng.cpp @@ -45,6 +45,8 @@ #include <qstring.h> #include <qvector.h> +#include <private/qstringiterator_p.h> + #include "qfontengine_p.h" QT_BEGIN_NAMESPACE @@ -341,16 +343,10 @@ _hb_qt_unicode_decompose_compatibility(hb_unicode_funcs_t * /*ufuncs*/, const QString normalized = QChar::decomposition(u); uint outlen = 0; - - // ### replace with QCharIterator - const ushort *p = reinterpret_cast<const ushort *>(normalized.unicode()); - const ushort *const e = p + normalized.size(); - for ( ; p != e; ++p) { - uint ucs4 = *p; - if (QChar::isHighSurrogate(ucs4) && p + 1 != e && QChar::isLowSurrogate(p[1])) - ucs4 = QChar::surrogateToUcs4(ucs4, *++p); + QStringIterator it(normalized); + while (it.hasNext()) { Q_ASSERT(outlen < HB_UNICODE_MAX_DECOMPOSITION_LEN); - decomposed[outlen++] = ucs4; + decomposed[outlen++] = it.next(); } return outlen; |