From ebfd24a20b1acdced5fe032eedb2737efdc6eb92 Mon Sep 17 00:00:00 2001 From: Ritt Konstantin Date: Fri, 8 Jul 2011 18:28:09 +0400 Subject: [PATCH] make QChar::Unicode_Unassigned a constantly big value this makes the version based checks a bit simpler (and thus faster) Change-Id: I975c6d043d238a5c16a4b13f8379e87fbade23cc Reviewed-on: http://codereview.qt.nokia.com/1586 Reviewed-by: Lars Knoll --- dist/changes-5.0.0 | 2 ++ src/corelib/io/qurl.cpp | 3 +-- src/corelib/tools/qchar.h | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/dist/changes-5.0.0 b/dist/changes-5.0.0 index 344edb6517..caf7e3023f 100644 --- a/dist/changes-5.0.0 +++ b/dist/changes-5.0.0 @@ -40,6 +40,8 @@ QtCore ------ * drop a bogus QChar::NoCategory enum value; the proper QChar::Other_NotAssigned value is returned for an unassigned codepoints now. +* QChar::Unicode_Unassigned value was moved to the end of enum in order to make + the version based checks more convenient and less error-prone in use. QtGui ----- diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index b948a43080..ef58e90dba 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -2973,8 +2973,7 @@ void qt_nameprep(QString *source, int from) } } if (!isUnassignedAllowed) { - QChar::UnicodeVersion version = QChar::unicodeVersion(uc); - if (version == QChar::Unicode_Unassigned || version > QChar::Unicode_3_2) { + if (QChar::unicodeVersion(uc) > QChar::Unicode_3_2) { source->resize(from); // not allowed, clear the label return; } diff --git a/src/corelib/tools/qchar.h b/src/corelib/tools/qchar.h index af50f6dde7..9047b6a9da 100644 --- a/src/corelib/tools/qchar.h +++ b/src/corelib/tools/qchar.h @@ -190,7 +190,6 @@ public: }; enum UnicodeVersion { - Unicode_Unassigned, // ### Qt 5: assign with some constantly big value Unicode_1_1, Unicode_2_0, Unicode_2_1_2, @@ -199,7 +198,8 @@ public: Unicode_3_2, Unicode_4_0, Unicode_4_1, - Unicode_5_0 + Unicode_5_0, + Unicode_Unassigned = 0xff }; // ****** WHEN ADDING FUNCTIONS, CONSIDER ADDING TO QCharRef TOO