From: Lars Knoll Date: Wed, 12 Jun 2013 12:39:48 +0000 (+0200) Subject: Finally get rid of qv8objectresource X-Git-Tag: upstream/5.2.1~669^2~253 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=248855fdff62d6118ee72e245a641ad26a5242bf;p=platform%2Fupstream%2Fqtdeclarative.git Finally get rid of qv8objectresource Change-Id: I3f157148a71cc2f36e51eb8007bfb03cfb5d08af Reviewed-by: Simon Hausmann --- diff --git a/src/qml/qml/v4/qv4serialize.cpp b/src/qml/qml/v4/qv4serialize.cpp index 0860e27..3d0d313 100644 --- a/src/qml/qml/v4/qv4serialize.cpp +++ b/src/qml/qml/v4/qv4serialize.cpp @@ -51,9 +51,6 @@ #include #include -#include -#include - QT_BEGIN_NAMESPACE using namespace QV4; @@ -258,14 +255,6 @@ void Serialize::serialize(QByteArray &data, const QV4::Value &v, QV8Engine *engi return; } - v8::Handle v8object(v); - QV8ObjectResource *r = static_cast(v8object->GetExternalResource()); - if (r) { - // not a sequence. - push(data, valueheader(WorkerUndefined)); - return; - } - // regular object QV4::ArrayObject *properties = QV4::ObjectPrototype::getOwnPropertyNames(v4, v); quint32 length = properties->arrayLength(); diff --git a/src/qml/qml/v8/qv8engine.cpp b/src/qml/qml/v8/qv8engine.cpp index 17701d6..95ad0cf 100644 --- a/src/qml/qml/v8/qv8engine.cpp +++ b/src/qml/qml/v8/qv8engine.cpp @@ -78,9 +78,6 @@ #include #include -#include -#include - Q_DECLARE_METATYPE(QList) @@ -139,14 +136,7 @@ QVariant QV8Engine::toVariant(const QV4::Value &value, int typeHint) return QVariant::fromValue(QJSValue(new QJSValuePrivate(m_v4Engine, value))); if (QV4::Object *object = value.asObject()) { - QV8ObjectResource *r = (QV8ObjectResource *)v8::Handle(value)->ToObject()->GetExternalResource(); - if (r) { - switch (r->resourceType()) { - case QV8ObjectResource::XMLHttpRequestType: - case QV8ObjectResource::DOMNodeType: - return QVariant(); - } - } else if (typeHint == QMetaType::QJsonObject + if (typeHint == QMetaType::QJsonObject && !value.asArrayObject() && !value.asFunctionObject()) { return QVariant::fromValue(QV4::JsonObject::toJsonObject(object)); } else if (QV4::QObjectWrapper *wrapper = object->as()) { diff --git a/src/qml/qml/v8/qv8objectresource_p.h b/src/qml/qml/v8/qv8objectresource_p.h deleted file mode 100644 index 660894d..0000000 --- a/src/qml/qml/v8/qv8objectresource_p.h +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the QtQml module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Digia gives you certain additional -** rights. These rights are described in the Digia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3.0 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU General Public License version 3.0 requirements will be -** met: http://www.gnu.org/copyleft/gpl.html. -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QV8OBJECTRESOURCE_P_H -#define QV8OBJECTRESOURCE_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include -#include - -QT_BEGIN_NAMESPACE - -#define V8_RESOURCE_TYPE(resourcetype) \ -public: \ - enum { V8ResourceType = QV8ObjectResource:: resourcetype }; \ - virtual QV8ObjectResource::ResourceType resourceType() const { return QV8ObjectResource:: resourcetype; } \ -private: - -class QV8Engine; -class QV8ObjectResource : public v8::Object::ExternalResource -{ -public: - QV8ObjectResource(QV8Engine *engine) : engine(engine) { Q_ASSERT(engine); } - enum ResourceType { XMLHttpRequestType, DOMNodeType }; - virtual ResourceType resourceType() const = 0; - - QV8Engine *engine; -}; - -template -inline T *v8_resource_cast(v8::Handle object) { - QV8ObjectResource *resource = static_cast(object->GetExternalResource()); - return (resource && (quint32)resource->resourceType() == (quint32)T::V8ResourceType)?static_cast(resource):0; -} - -template -inline T *v8_resource_check(v8::Handle object) { - T *resource = static_cast(object->GetExternalResource()); - Q_ASSERT(resource && resource->resourceType() == (quint32)T::V8ResourceType); - return resource; -} - -QT_END_NAMESPACE - -#endif // QV8OBJECTRESOURCE_P_H diff --git a/src/qml/qml/v8/v8.pri b/src/qml/qml/v8/v8.pri index 1327792..e187143 100644 --- a/src/qml/qml/v8/v8.pri +++ b/src/qml/qml/v8/v8.pri @@ -7,8 +7,7 @@ HEADERS += \ $$PWD/qv8engine_p.h \ $$PWD/qv4domerrors_p.h \ $$PWD/qv4sqlerrors_p.h \ - $$PWD/qqmlbuiltinfunctions_p.h \ - $$PWD/qv8objectresource_p.h + $$PWD/qqmlbuiltinfunctions_p.h SOURCES += \ $$PWD/qv8engine.cpp \