Changeset 54060 in webkit


Ignore:
Timestamp:
Jan 29, 2010 6:33:13 AM (10 years ago)
Author:
Simon Hausmann
Message:

[Qt] Speed up the WebCore::String -> QString conversion

Patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com> on 2010-01-29
Reviewed by Simon Hausmann.

Use QString(const QChar *, int len) constructor instead of QString::fromUtf16 to
avoid BOM checks and byteswapping.

  • bridge/qt/qt_class.cpp:

(JSC::Bindings::QtClass::fieldNamed):

  • bridge/qt/qt_runtime.cpp:

(JSC::Bindings::convertValueToQVariant):

Location:
trunk/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r54059 r54060  
     12010-01-29  Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
     2
     3        Reviewed by Simon Hausmann.
     4
     5        [Qt] Speed up the WebCore::String -> QString conversion
     6
     7        Use QString(const QChar *, int len) constructor instead of QString::fromUtf16 to
     8        avoid BOM checks and byteswapping.
     9
     10        * bridge/qt/qt_class.cpp:
     11        (JSC::Bindings::QtClass::fieldNamed):
     12        * bridge/qt/qt_runtime.cpp:
     13        (JSC::Bindings::convertValueToQVariant):
     14
    1152010-01-29  Alexander Pavlov  <apavlov@chromium.org>
    216
  • trunk/WebCore/bridge/qt/qt_class.cpp

    r43122 r54060  
    128128    QObject* obj = qtinst->getObject();
    129129    UString ustring = identifier.ustring();
    130     QString objName(QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()));
     130    QString objName((const QChar*)ustring.rep()->data(), ustring.size());
    131131    QByteArray ba = objName.toAscii();
    132132
  • trunk/WebCore/bridge/qt/qt_runtime.cpp

    r53930 r54060  
    306306            } else {
    307307                UString ustring = value.toString(exec);
    308                 ret = QVariant(QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()));
     308                ret = QVariant(QString((const QChar*)ustring.rep()->data(), ustring.size()));
    309309                if (type == String)
    310310                    dist = 0;
     
    330330                        if (objdist >= 0) {
    331331                            UString ustring = (*it).ustring();
    332                             QString id = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
     332                            QString id = QString((const QChar*)ustring.rep()->data(), ustring.size());
    333333                            result.insert(id, v);
    334334                        }
     
    405405                    JSValue val = rtarray->getConcreteArray()->valueAt(exec, i);
    406406                    UString ustring = val.toString(exec);
    407                     QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
     407                    QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
    408408
    409409                    result.append(qstring);
     
    419419                    JSValue val = array->get(exec, i);
    420420                    UString ustring = val.toString(exec);
    421                     QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
     421                    QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
    422422
    423423                    result.append(qstring);
     
    428428                // Make a single length array
    429429                UString ustring = value.toString(exec);
    430                 QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
     430                QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
    431431                QStringList result;
    432432                result.append(qstring);
     
    444444            } else {
    445445                UString ustring = value.toString(exec);
    446                 ret = QVariant(QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size()).toLatin1());
     446                ret = QVariant(QString((const QChar*)ustring.rep()->data(), ustring.size()).toLatin1());
    447447                if (type == String)
    448448                    dist = 5;
     
    486486            } else if (type == String) {
    487487                UString ustring = value.toString(exec);
    488                 QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
     488                QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
    489489
    490490                if (hint == QMetaType::QDateTime) {
     
    535535                // Attempt to convert.. a bit risky
    536536                UString ustring = value.toString(exec);
    537                 QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
     537                QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
    538538
    539539                // this is of the form '/xxxxxx/i'
     
    555555            } else if (type == String) {
    556556                UString ustring = value.toString(exec);
    557                 QString qstring = QString::fromUtf16((const ushort*)ustring.rep()->data(),ustring.size());
     557                QString qstring = QString((const QChar*)ustring.rep()->data(), ustring.size());
    558558
    559559                QRegExp re(qstring);
Note: See TracChangeset for help on using the changeset viewer.