Diff
Modified: trunk/Source/WTF/ChangeLog (141254 => 141255)
--- trunk/Source/WTF/ChangeLog 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WTF/ChangeLog 2013-01-30 12:27:34 UTC (rev 141255)
@@ -1,3 +1,18 @@
+2013-01-30 Simon Hausmann <[email protected]>
+
+ [Qt] Remove QT4_UNICODE related code paths
+ https://bugs.webkit.org/show_bug.cgi?id=108316
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Get rid of QT4_UNICODE and any related code paths. The Qt port
+ requires Qt5 and ICU these days.
+
+ * WTF.gypi:
+ * WTF.pro:
+ * wtf/unicode/Unicode.h:
+ * wtf/unicode/qt4/UnicodeQt4.h: Removed.
+
2013-01-29 Mark Lam <[email protected]>
Introducing WTF::TypeSafeEnum and DatabaseError.
Modified: trunk/Source/WTF/WTF.gypi (141254 => 141255)
--- trunk/Source/WTF/WTF.gypi 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WTF/WTF.gypi 2013-01-30 12:27:34 UTC (rev 141255)
@@ -256,7 +256,6 @@
'wtf/unicode/glib/UnicodeGLib.cpp',
'wtf/unicode/glib/UnicodeGLib.h',
'wtf/unicode/icu/CollatorICU.cpp',
- 'wtf/unicode/qt4/UnicodeQt4.h',
'wtf/unicode/wchar/UnicodeWchar.cpp',
'wtf/unicode/wchar/UnicodeWchar.h',
'wtf/win/MainThreadWin.cpp',
Modified: trunk/Source/WTF/WTF.pro (141254 => 141255)
--- trunk/Source/WTF/WTF.pro 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WTF/WTF.pro 2013-01-30 12:27:34 UTC (rev 141255)
@@ -178,7 +178,6 @@
unicode/CharacterNames.h \
unicode/Collator.h \
unicode/icu/UnicodeIcu.h \
- unicode/qt4/UnicodeQt4.h \
unicode/ScriptCodesFromICU.h \
unicode/Unicode.h \
unicode/UnicodeMacrosFromICU.h \
Modified: trunk/Source/WTF/wtf/unicode/Unicode.h (141254 => 141255)
--- trunk/Source/WTF/wtf/unicode/Unicode.h 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WTF/wtf/unicode/Unicode.h 2013-01-30 12:27:34 UTC (rev 141255)
@@ -28,9 +28,7 @@
// Define platform neutral 8 bit character type (L is for Latin-1).
typedef unsigned char LChar;
-#if USE(QT4_UNICODE)
-#include "qt4/UnicodeQt4.h"
-#elif USE(ICU_UNICODE)
+#if USE(ICU_UNICODE)
#include <wtf/unicode/icu/UnicodeIcu.h>
#elif USE(GLIB_UNICODE)
#include <wtf/unicode/glib/UnicodeGLib.h>
Deleted: trunk/Source/WTF/wtf/unicode/qt4/UnicodeQt4.h (141254 => 141255)
--- trunk/Source/WTF/wtf/unicode/qt4/UnicodeQt4.h 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WTF/wtf/unicode/qt4/UnicodeQt4.h 2013-01-30 12:27:34 UTC (rev 141255)
@@ -1,377 +0,0 @@
-/*
- * Copyright (C) 2006 George Staikos <[email protected]>
- * Copyright (C) 2006 Alexey Proskuryakov <[email protected]>
- * Copyright (C) 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef WTF_UNICODE_QT4_H
-#define WTF_UNICODE_QT4_H
-
-#include <wtf/unicode/ScriptCodesFromICU.h>
-#include <wtf/unicode/UnicodeMacrosFromICU.h>
-
-#include <QChar>
-#include <QString>
-
-#include <config.h>
-
-#include <stdint.h>
-#if USE(ICU_UNICODE)
-#include <unicode/ubrk.h>
-#endif
-
-QT_BEGIN_NAMESPACE
-namespace QUnicodeTables {
- struct Properties {
- ushort category : 8;
- ushort line_break_class : 8;
- ushort direction : 8;
- ushort combiningClass :8;
- ushort joining : 2;
- signed short digitValue : 6; /* 5 needed */
- ushort unicodeVersion : 4;
- ushort lowerCaseSpecial : 1;
- ushort upperCaseSpecial : 1;
- ushort titleCaseSpecial : 1;
- ushort caseFoldSpecial : 1; /* currently unused */
- signed short mirrorDiff : 16;
- signed short lowerCaseDiff : 16;
- signed short upperCaseDiff : 16;
- signed short titleCaseDiff : 16;
- signed short caseFoldDiff : 16;
- };
- Q_CORE_EXPORT const Properties * QT_FASTCALL properties(uint ucs4);
- Q_CORE_EXPORT const Properties * QT_FASTCALL properties(ushort ucs2);
-}
-QT_END_NAMESPACE
-
-// ugly hack to make UChar compatible with JSChar in API/JSStringRef.h
-#if defined(Q_OS_WIN) || (COMPILER(RVCT) && !OS(LINUX))
-typedef wchar_t UChar;
-#else
-typedef uint16_t UChar;
-#endif
-
-#if !USE(ICU_UNICODE)
-typedef uint32_t UChar32;
-#endif
-
-namespace WTF {
-namespace Unicode {
-
-enum Direction {
- LeftToRight = QChar::DirL,
- RightToLeft = QChar::DirR,
- EuropeanNumber = QChar::DirEN,
- EuropeanNumberSeparator = QChar::DirES,
- EuropeanNumberTerminator = QChar::DirET,
- ArabicNumber = QChar::DirAN,
- CommonNumberSeparator = QChar::DirCS,
- BlockSeparator = QChar::DirB,
- SegmentSeparator = QChar::DirS,
- WhiteSpaceNeutral = QChar::DirWS,
- OtherNeutral = QChar::DirON,
- LeftToRightEmbedding = QChar::DirLRE,
- LeftToRightOverride = QChar::DirLRO,
- RightToLeftArabic = QChar::DirAL,
- RightToLeftEmbedding = QChar::DirRLE,
- RightToLeftOverride = QChar::DirRLO,
- PopDirectionalFormat = QChar::DirPDF,
- NonSpacingMark = QChar::DirNSM,
- BoundaryNeutral = QChar::DirBN
-};
-
-enum DecompositionType {
- DecompositionNone = QChar::NoDecomposition,
- DecompositionCanonical = QChar::Canonical,
- DecompositionCompat = QChar::Compat,
- DecompositionCircle = QChar::Circle,
- DecompositionFinal = QChar::Final,
- DecompositionFont = QChar::Font,
- DecompositionFraction = QChar::Fraction,
- DecompositionInitial = QChar::Initial,
- DecompositionIsolated = QChar::Isolated,
- DecompositionMedial = QChar::Medial,
- DecompositionNarrow = QChar::Narrow,
- DecompositionNoBreak = QChar::NoBreak,
- DecompositionSmall = QChar::Small,
- DecompositionSquare = QChar::Square,
- DecompositionSub = QChar::Sub,
- DecompositionSuper = QChar::Super,
- DecompositionVertical = QChar::Vertical,
- DecompositionWide = QChar::Wide
-};
-
-enum CharCategory {
- NoCategory = 0,
- Mark_NonSpacing = U_MASK(QChar::Mark_NonSpacing),
- Mark_SpacingCombining = U_MASK(QChar::Mark_SpacingCombining),
- Mark_Enclosing = U_MASK(QChar::Mark_Enclosing),
- Number_DecimalDigit = U_MASK(QChar::Number_DecimalDigit),
- Number_Letter = U_MASK(QChar::Number_Letter),
- Number_Other = U_MASK(QChar::Number_Other),
- Separator_Space = U_MASK(QChar::Separator_Space),
- Separator_Line = U_MASK(QChar::Separator_Line),
- Separator_Paragraph = U_MASK(QChar::Separator_Paragraph),
- Other_Control = U_MASK(QChar::Other_Control),
- Other_Format = U_MASK(QChar::Other_Format),
- Other_Surrogate = U_MASK(QChar::Other_Surrogate),
- Other_PrivateUse = U_MASK(QChar::Other_PrivateUse),
- Other_NotAssigned = U_MASK(QChar::Other_NotAssigned),
- Letter_Uppercase = U_MASK(QChar::Letter_Uppercase),
- Letter_Lowercase = U_MASK(QChar::Letter_Lowercase),
- Letter_Titlecase = U_MASK(QChar::Letter_Titlecase),
- Letter_Modifier = U_MASK(QChar::Letter_Modifier),
- Letter_Other = U_MASK(QChar::Letter_Other),
- Punctuation_Connector = U_MASK(QChar::Punctuation_Connector),
- Punctuation_Dash = U_MASK(QChar::Punctuation_Dash),
- Punctuation_Open = U_MASK(QChar::Punctuation_Open),
- Punctuation_Close = U_MASK(QChar::Punctuation_Close),
- Punctuation_InitialQuote = U_MASK(QChar::Punctuation_InitialQuote),
- Punctuation_FinalQuote = U_MASK(QChar::Punctuation_FinalQuote),
- Punctuation_Other = U_MASK(QChar::Punctuation_Other),
- Symbol_Math = U_MASK(QChar::Symbol_Math),
- Symbol_Currency = U_MASK(QChar::Symbol_Currency),
- Symbol_Modifier = U_MASK(QChar::Symbol_Modifier),
- Symbol_Other = U_MASK(QChar::Symbol_Other)
-};
-
-
-// FIXME: handle surrogates correctly in all methods
-
-inline UChar32 toLower(UChar32 ch)
-{
- return QChar::toLower(uint32_t(ch));
-}
-
-inline int toLower(UChar* result, int resultLength, const UChar* src, int srcLength, bool* error)
-{
- const UChar *e = src + srcLength;
- const UChar *s = src;
- UChar *r = result;
- uint rindex = 0;
-
- // this avoids one out of bounds check in the loop
- if (s < e && QChar(*s).isLowSurrogate()) {
- if (r)
- r[rindex] = *s++;
- ++rindex;
- }
-
- int needed = 0;
- while (s < e && (rindex < uint(resultLength) || !r)) {
- uint c = *s;
- if (QChar(c).isLowSurrogate() && QChar(*(s - 1)).isHighSurrogate())
- c = QChar::surrogateToUcs4(*(s - 1), c);
- const QUnicodeTables::Properties *prop = QUnicodeTables::properties(c);
- if (prop->lowerCaseSpecial) {
- QString qstring;
- if (c < 0x10000) {
- qstring += QChar(c);
- } else {
- qstring += QChar(*(s-1));
- qstring += QChar(*s);
- }
- qstring = qstring.toLower();
- for (int i = 0; i < qstring.length(); ++i) {
- if (rindex >= uint(resultLength)) {
- needed += qstring.length() - i;
- break;
- }
- if (r)
- r[rindex] = qstring.at(i).unicode();
- ++rindex;
- }
- } else {
- if (r)
- r[rindex] = *s + prop->lowerCaseDiff;
- ++rindex;
- }
- ++s;
- }
- if (s < e)
- needed += e - s;
- *error = (needed != 0);
- if (rindex < uint(resultLength))
- r[rindex] = 0;
- return rindex + needed;
-}
-
-inline UChar32 toUpper(UChar32 c)
-{
- return QChar::toUpper(uint32_t(c));
-}
-
-inline int toUpper(UChar* result, int resultLength, const UChar* src, int srcLength, bool* error)
-{
- const UChar *e = src + srcLength;
- const UChar *s = src;
- UChar *r = result;
- int rindex = 0;
-
- // this avoids one out of bounds check in the loop
- if (s < e && QChar(*s).isLowSurrogate()) {
- if (r)
- r[rindex] = *s++;
- ++rindex;
- }
-
- int needed = 0;
- while (s < e && (rindex < resultLength || !r)) {
- uint c = *s;
- if (QChar(c).isLowSurrogate() && QChar(*(s - 1)).isHighSurrogate())
- c = QChar::surrogateToUcs4(*(s - 1), c);
- const QUnicodeTables::Properties *prop = QUnicodeTables::properties(c);
- if (prop->upperCaseSpecial) {
- QString qstring;
- if (c < 0x10000) {
- qstring += QChar(c);
- } else {
- qstring += QChar(*(s-1));
- qstring += QChar(*s);
- }
- qstring = qstring.toUpper();
- for (int i = 0; i < qstring.length(); ++i) {
- if (rindex >= resultLength) {
- needed += qstring.length() - i;
- break;
- }
- if (r)
- r[rindex] = qstring.at(i).unicode();
- ++rindex;
- }
- } else {
- if (r)
- r[rindex] = *s + prop->upperCaseDiff;
- ++rindex;
- }
- ++s;
- }
- if (s < e)
- needed += e - s;
- *error = (needed != 0);
- if (rindex < resultLength)
- r[rindex] = 0;
- return rindex + needed;
-}
-
-inline int toTitleCase(UChar32 c)
-{
- return QChar::toTitleCase(uint32_t(c));
-}
-
-inline UChar32 foldCase(UChar32 c)
-{
- return QChar::toCaseFolded(uint32_t(c));
-}
-
-inline int foldCase(UChar* result, int resultLength, const UChar* src, int srcLength, bool* error)
-{
- // FIXME: handle special casing. Easiest with some low level API in Qt
- *error = false;
- if (resultLength < srcLength) {
- *error = true;
- return srcLength;
- }
- for (int i = 0; i < srcLength; ++i)
- result[i] = QChar::toCaseFolded(ushort(src[i]));
- return srcLength;
-}
-
-inline bool isArabicChar(UChar32 c)
-{
- return c >= 0x0600 && c <= 0x06FF;
-}
-
-inline bool isPrintableChar(UChar32 c)
-{
- const uint test = U_MASK(QChar::Other_Control) |
- U_MASK(QChar::Other_NotAssigned);
- return !(U_MASK(QChar::category(uint32_t(c))) & test);
-}
-
-inline bool isSeparatorSpace(UChar32 c)
-{
- return QChar::category(uint32_t(c)) == QChar::Separator_Space;
-}
-
-inline bool isPunct(UChar32 c)
-{
- const uint test = U_MASK(QChar::Punctuation_Connector) |
- U_MASK(QChar::Punctuation_Dash) |
- U_MASK(QChar::Punctuation_Open) |
- U_MASK(QChar::Punctuation_Close) |
- U_MASK(QChar::Punctuation_InitialQuote) |
- U_MASK(QChar::Punctuation_FinalQuote) |
- U_MASK(QChar::Punctuation_Other);
- return U_MASK(QChar::category(uint32_t(c))) & test;
-}
-
-inline bool isLower(UChar32 c)
-{
- return QChar::category(uint32_t(c)) == QChar::Letter_Lowercase;
-}
-
-inline bool hasLineBreakingPropertyComplexContext(UChar32)
-{
- // FIXME: Implement this to return whether the character has line breaking property SA (Complex Context).
- return false;
-}
-
-inline UChar32 mirroredChar(UChar32 c)
-{
- return QChar::mirroredChar(uint32_t(c));
-}
-
-inline uint8_t combiningClass(UChar32 c)
-{
- return QChar::combiningClass(uint32_t(c));
-}
-
-inline DecompositionType decompositionType(UChar32 c)
-{
- return (DecompositionType)QChar::decompositionTag(c);
-}
-
-inline int umemcasecmp(const UChar* a, const UChar* b, int len)
-{
- // handle surrogates correctly
- for (int i = 0; i < len; ++i) {
- uint c1 = QChar::toCaseFolded(ushort(a[i]));
- uint c2 = QChar::toCaseFolded(ushort(b[i]));
- if (c1 != c2)
- return c1 - c2;
- }
- return 0;
-}
-
-inline Direction direction(UChar32 c)
-{
- return (Direction)QChar::direction(uint32_t(c));
-}
-
-inline CharCategory category(UChar32 c)
-{
- return (CharCategory) U_MASK(QChar::category(uint32_t(c)));
-}
-
-} // namespace Unicode
-} // namespace WTF
-
-#endif // WTF_UNICODE_QT4_H
Modified: trunk/Source/WebCore/ChangeLog (141254 => 141255)
--- trunk/Source/WebCore/ChangeLog 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebCore/ChangeLog 2013-01-30 12:27:34 UTC (rev 141255)
@@ -1,3 +1,26 @@
+2013-01-30 Simon Hausmann <[email protected]>
+
+ [Qt] Remove QT4_UNICODE related code paths
+ https://bugs.webkit.org/show_bug.cgi?id=108316
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Get rid of QT4_UNICODE and any related code paths. The Qt port
+ requires Qt5 and ICU these days. This also allows for the removal
+ of TextCodecQt.
+
+ * Target.pri:
+ * platform/KURL.cpp:
+ (WebCore::appendEncodedHostname):
+ * platform/graphics/SurrogatePairAwareTextIterator.cpp:
+ (WebCore::SurrogatePairAwareTextIterator::normalizeVoicingMarks):
+ * platform/text/TextEncoding.cpp:
+ (WebCore::TextEncoding::encode):
+ * platform/text/TextEncodingRegistry.cpp:
+ (WebCore::extendTextCodecMaps):
+ * platform/text/qt/TextCodecQt.cpp: Removed.
+ * platform/text/qt/TextCodecQt.h: Removed.
+
2013-01-30 David Kilzer <[email protected]>
BUILD FIX: Make WebCorePrefix.h build on iOS
Modified: trunk/Source/WebCore/Target.pri (141254 => 141255)
--- trunk/Source/WebCore/Target.pri 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebCore/Target.pri 2013-01-30 12:27:34 UTC (rev 141255)
@@ -2357,7 +2357,6 @@
platform/text/DecodeEscapeSequences.h \
platform/text/Hyphenation.h \
platform/text/QuotedPrintable.h \
- platform/text/qt/TextCodecQt.h \
platform/text/RegularExpression.h \
platform/text/SegmentedString.h \
platform/text/TextBoundaries.h \
@@ -2927,7 +2926,6 @@
platform/qt/TemporaryLinkStubsQt.cpp \
platform/text/qt/TextBoundariesQt.cpp \
platform/text/qt/TextBreakIteratorInternalICUQt.cpp \
- platform/text/qt/TextCodecQt.cpp \
platform/qt/WidgetQt.cpp
use?(LIBXML2) {
Modified: trunk/Source/WebCore/platform/KURL.cpp (141254 => 141255)
--- trunk/Source/WebCore/platform/KURL.cpp 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebCore/platform/KURL.cpp 2013-01-30 12:27:34 UTC (rev 141255)
@@ -44,8 +44,6 @@
#if USE(ICU_UNICODE)
#include <unicode/uidna.h>
-#elif USE(QT4_UNICODE)
-#include <QUrl>
#elif USE(GLIB_UNICODE)
#include <glib.h>
#include <wtf/gobject/GOwnPtr.h>
@@ -1487,9 +1485,6 @@
hostnameBufferLength, UIDNA_ALLOW_UNASSIGNED, 0, &error);
if (error == U_ZERO_ERROR)
buffer.append(hostnameBuffer, numCharactersConverted);
-#elif USE(QT4_UNICODE)
- QByteArray result = QUrl::toAce(String(str, strLen));
- buffer.append(result.constData(), result.length());
#elif USE(GLIB_UNICODE)
GOwnPtr<gchar> utf8Hostname;
GOwnPtr<GError> utf8Err;
Modified: trunk/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp (141254 => 141255)
--- trunk/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebCore/platform/graphics/SurrogatePairAwareTextIterator.cpp 2013-01-30 12:27:34 UTC (rev 141255)
@@ -90,11 +90,6 @@
int32_t resultLength = unorm_normalize(m_characters, 2, UNORM_NFC, UNORM_UNICODE_3_2, &normalizedCharacters[0], 2, &uStatus);
if (resultLength == 1 && !uStatus)
return normalizedCharacters[0];
-#elif USE(QT4_UNICODE)
- QString tmp(reinterpret_cast<const QChar*>(m_characters), 2);
- QString res = tmp.normalized(QString::NormalizationForm_C, QChar::Unicode_3_2);
- if (res.length() == 1)
- return res.at(0).unicode();
#endif
}
Modified: trunk/Source/WebCore/platform/text/TextEncoding.cpp (141254 => 141255)
--- trunk/Source/WebCore/platform/text/TextEncoding.cpp 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebCore/platform/text/TextEncoding.cpp 2013-01-30 12:27:34 UTC (rev 141255)
@@ -37,8 +37,6 @@
#if USE(ICU_UNICODE)
#include <unicode/unorm.h>
-#elif USE(QT4_UNICODE)
-#include <QString>
#elif USE(GLIB_UNICODE)
#include <glib.h>
#include <wtf/gobject/GOwnPtr.h>
@@ -106,10 +104,6 @@
sourceLength = normalizedLength;
}
return newTextCodec(*this)->encode(source, sourceLength, handling);
-#elif USE(QT4_UNICODE)
- QString str(reinterpret_cast<const QChar*>(characters), length);
- str = str.normalized(QString::NormalizationForm_C);
- return newTextCodec(*this)->encode(reinterpret_cast<const UChar *>(str.utf16()), str.length(), handling);
#elif USE(GLIB_UNICODE)
GOwnPtr<char> UTF8Source;
UTF8Source.set(g_utf16_to_utf8(characters, length, 0, 0, 0));
Modified: trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp (141254 => 141255)
--- trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebCore/platform/text/TextEncodingRegistry.cpp 2013-01-30 12:27:34 UTC (rev 141255)
@@ -45,9 +45,6 @@
#if PLATFORM(MAC)
#include "TextCodecMac.h"
#endif
-#if USE(QT4_UNICODE)
-#include "qt/TextCodecQt.h"
-#endif
#if USE(GLIB_UNICODE)
#include "gtk/TextCodecGtk.h"
#endif
@@ -296,11 +293,6 @@
TextCodecICU::registerCodecs(addToTextCodecMap);
#endif
-#if USE(QT4_UNICODE)
- TextCodecQt::registerEncodingNames(addToTextEncodingNameMap);
- TextCodecQt::registerCodecs(addToTextCodecMap);
-#endif
-
#if PLATFORM(MAC)
TextCodecMac::registerEncodingNames(addToTextEncodingNameMap);
TextCodecMac::registerCodecs(addToTextCodecMap);
Deleted: trunk/Source/WebCore/platform/text/qt/TextCodecQt.cpp (141254 => 141255)
--- trunk/Source/WebCore/platform/text/qt/TextCodecQt.cpp 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebCore/platform/text/qt/TextCodecQt.cpp 2013-01-30 12:27:34 UTC (rev 141255)
@@ -1,160 +0,0 @@
-/*
- * Copyright (C) 2006 Lars Knoll <[email protected]>
- * Copyright (C) 2008 Holger Hans Peter Freyther
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-#if USE(QT4_UNICODE)
-#include "TextCodecQt.h"
-
-#include <qset.h>
-#include <wtf/text/CString.h>
-#include <wtf/text/WTFString.h>
-
-namespace WebCore {
-
-static QSet<QByteArray> *unique_names = 0;
-
-static const char *getAtomicName(const QByteArray &name)
-{
- if (!unique_names)
- unique_names = new QSet<QByteArray>;
-
- unique_names->insert(name);
- return unique_names->find(name)->constData();
-}
-
-void TextCodecQt::registerEncodingNames(EncodingNameRegistrar registrar)
-{
- QList<int> mibs = QTextCodec::availableMibs();
-
- for (int i = 0; i < mibs.size(); ++i) {
- QTextCodec *c = QTextCodec::codecForMib(mibs.at(i));
- const char *name = getAtomicName(c->name());
- registrar(name, name);
- QList<QByteArray> aliases = c->aliases();
- for (int i = 0; i < aliases.size(); ++i) {
- const char *a = getAtomicName(aliases.at(i));
- registrar(a, name);
- }
- }
-}
-
-static PassOwnPtr<TextCodec> newTextCodecQt(const TextEncoding& encoding, const void*)
-{
- return adoptPtr(new TextCodecQt(encoding));
-}
-
-void TextCodecQt::registerCodecs(TextCodecRegistrar registrar)
-{
- QList<int> mibs = QTextCodec::availableMibs();
-
- for (int i = 0; i < mibs.size(); ++i) {
- QTextCodec *c = QTextCodec::codecForMib(mibs.at(i));
- const char *name = getAtomicName(c->name());
- registrar(name, newTextCodecQt, 0);
- }
-}
-
-TextCodecQt::TextCodecQt(const TextEncoding& encoding)
- : m_encoding(encoding)
-{
- m_codec = QTextCodec::codecForName(m_encoding.name());
-}
-
-TextCodecQt::~TextCodecQt()
-{
-}
-
-
-String TextCodecQt::decode(const char* bytes, size_t length, bool flush, bool /*stopOnError*/, bool& sawError)
-{
- // We chop input buffer to smaller buffers to avoid excessive memory consumption
- // when the input buffer is big. This helps reduce peak memory consumption in
- // mobile devices where system RAM is limited.
- static const int MaxInputChunkSize = 1024 * 1024;
- const char* buf = bytes;
- const char* end = buf + length;
- String unicode(""); // a non-null string is expected
-
- while (buf < end) {
- int size = end - buf;
- size = qMin(size, MaxInputChunkSize);
- QString decoded = m_codec->toUnicode(buf, size, &m_state);
- unicode.append(reinterpret_cast_ptr<const UChar*>(decoded.unicode()), decoded.length());
- buf += size;
- }
-
- sawError = m_state.invalidChars != 0;
-
- if (flush) {
- m_state.flags = QTextCodec::DefaultConversion;
- m_state.remainingChars = 0;
- m_state.invalidChars = 0;
- }
-
- return unicode;
-}
-
-CString TextCodecQt::encode(const UChar* characters, size_t length, UnencodableHandling handling)
-{
- QTextCodec::ConverterState state;
- state.flags = QTextCodec::ConversionFlags(QTextCodec::ConvertInvalidToNull | QTextCodec::IgnoreHeader);
-
- if (!length)
- return "";
-
- QByteArray ba = m_codec->fromUnicode(reinterpret_cast<const QChar*>(characters), length, &state);
-
- // If some <b> characters </b> are unencodable, escape them as specified by <b> handling </b>
- // We append one valid encoded chunk to a QByteArray at a time. When we encounter an unencodable chunk we
- // escape it with getUnencodableReplacement, append it, then move to the next chunk.
- if (state.invalidChars) {
- state.invalidChars = 0;
- state.remainingChars = 0;
- int len = 0;
- ba.clear();
- for (size_t pos = 0; pos < length; ++pos) {
- QByteArray tba = m_codec->fromUnicode(reinterpret_cast<const QChar*>(characters), ++len, &state);
- if (state.remainingChars)
- continue;
- if (state.invalidChars) {
- UnencodableReplacementArray replacement;
- getUnencodableReplacement(characters[0], handling, replacement);
- tba.replace('\0', replacement);
- state.invalidChars = 0;
- }
- ba.append(tba);
- characters += len;
- len = 0;
- state.remainingChars = 0;
- }
- }
-
- return CString(ba.constData(), ba.length());
-}
-
-
-} // namespace WebCore
-#endif
Deleted: trunk/Source/WebCore/platform/text/qt/TextCodecQt.h (141254 => 141255)
--- trunk/Source/WebCore/platform/text/qt/TextCodecQt.h 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebCore/platform/text/qt/TextCodecQt.h 2013-01-30 12:27:34 UTC (rev 141255)
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2006 Lars Knoll <[email protected]>
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef TextCodecQt_h
-#define TextCodecQt_h
-
-#include "TextCodec.h"
-#include "TextEncoding.h"
-#include <QTextCodec>
-
-namespace WebCore {
-
- class TextCodecQt : public TextCodec {
- public:
- static void registerEncodingNames(EncodingNameRegistrar);
- static void registerCodecs(TextCodecRegistrar);
-
- TextCodecQt(const TextEncoding&);
- virtual ~TextCodecQt();
-
- virtual String decode(const char*, size_t length, bool flush, bool stopOnError, bool& sawError);
- virtual CString encode(const UChar*, size_t length, UnencodableHandling);
-
- private:
- TextEncoding m_encoding;
- QTextCodec *m_codec;
- QTextCodec::ConverterState m_state;
- };
-
-} // namespace WebCore
-
-#endif // TextCodecICU_h
Modified: trunk/Source/WebKit/blackberry/ChangeLog (141254 => 141255)
--- trunk/Source/WebKit/blackberry/ChangeLog 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2013-01-30 12:27:34 UTC (rev 141255)
@@ -1,3 +1,12 @@
+2013-01-30 Simon Hausmann <[email protected]>
+
+ [Qt] Remove QT4_UNICODE related code paths
+ https://bugs.webkit.org/show_bug.cgi?id=108316
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ * WebCoreSupport/AboutDataUseFeatures.in: The feature macro has been removed.
+
2013-01-29 Sheriff Bot <[email protected]>
Unreviewed, rolling out r140983.
Modified: trunk/Source/WebKit/blackberry/WebCoreSupport/AboutDataUseFeatures.in (141254 => 141255)
--- trunk/Source/WebKit/blackberry/WebCoreSupport/AboutDataUseFeatures.in 2013-01-30 12:21:29 UTC (rev 141254)
+++ trunk/Source/WebKit/blackberry/WebCoreSupport/AboutDataUseFeatures.in 2013-01-30 12:27:34 UTC (rev 141255)
@@ -76,7 +76,6 @@
PTHREAD_BASED_QT
PTHREAD_GETSPECIFIC_DIRECT
PTHREADS
-QT4_UNICODE
QTKIT
QT_MOBILE_THEME
QT_MOBILITY_SYSTEMINFO