diff options
author | Chris Adams <christopher.adams@nokia.com> | 2011-11-04 14:13:43 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-11 08:20:53 +0100 |
commit | 43c516be86fb0b825b27144a68d837b87c3e1a23 (patch) | |
tree | a597cccb04b53b259de497d7143479847c821816 /src | |
parent | 851412e58ee70d76ecf405d113a1d29d82157e53 (diff) |
Remove unused codepaths from QV8SequenceWrapper
The object equality comparison callback does not allow an object with
a sequence resource to be equal to an object with a variant resource.
As such, the SequenceType::isEqual(QVariant) codepaths are not needed.
Also, QVariantList conversion is handled by toBasicVariant() in the
QV8Engine, and thus we don't need conversion code for this type in
the sequence wrapper.
Change-Id: I2ec599c5ad6cfdb715cd4e0aae3f0cc3bb36cfdf
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/declarative/qml/v8/qv8sequencewrapper.cpp | 26 | ||||
-rw-r--r-- | src/declarative/qml/v8/qv8sequencewrapper_p_p.h | 11 |
2 files changed, 1 insertions, 36 deletions
diff --git a/src/declarative/qml/v8/qv8sequencewrapper.cpp b/src/declarative/qml/v8/qv8sequencewrapper.cpp index 61fb993d8c..f63b5da4ea 100644 --- a/src/declarative/qml/v8/qv8sequencewrapper.cpp +++ b/src/declarative/qml/v8/qv8sequencewrapper.cpp @@ -89,19 +89,11 @@ void QV8SequenceWrapper::destroy() qPersistentDispose(m_constructor); } -bool QV8SequenceWrapper::isEqual(QV8ObjectResource *lhs, const QVariant &rhs) -{ - Q_ASSERT(lhs->resourceType() == QV8ObjectResource::SequenceType); - QV8SequenceResource *r = static_cast<QV8SequenceResource *>(lhs); - Q_ASSERT(r); - return r->isEqual(rhs); -} - bool QV8SequenceWrapper::isEqual(QV8ObjectResource *lhs, QV8ObjectResource *rhs) { + Q_ASSERT(lhs && rhs && lhs->resourceType() == QV8ObjectResource::SequenceType && rhs->resourceType() == QV8ObjectResource::SequenceType); QV8SequenceResource *lr = static_cast<QV8SequenceResource *>(lhs); QV8SequenceResource *rr = static_cast<QV8SequenceResource *>(rhs); - Q_ASSERT(lr && rr); return lr->isEqual(rr); } @@ -173,23 +165,7 @@ QVariant QV8SequenceWrapper::toVariant(QV8ObjectResource *r) QVariant QV8SequenceWrapper::toVariant(v8::Handle<v8::Array> array, int typeHint, bool *succeeded) { *succeeded = true; - QV8SequenceResource *sr = static_cast<QV8SequenceResource *>(array->GetExternalResource()); - if (sr) - return sr->toVariant(); - - // if no typehint is given it's just a sequence of arbitrary variants uint32_t length = array->Length(); - if (typeHint == -1) { - QVariantList list; - for (uint32_t ii = 0; ii < length; ++ii) { - v8::Local<v8::Value> arrayItem = array->Get(ii); - list.append(m_engine->toVariant(arrayItem, -1)); - } - - return list; - } - - // otherwise, try to build a sequence of the correct type FOREACH_QML_SEQUENCE_TYPE(SEQUENCE_TO_VARIANT) { /* else */ *succeeded = false; return QVariant(); } } #undef SEQUENCE_TO_VARIANT diff --git a/src/declarative/qml/v8/qv8sequencewrapper_p_p.h b/src/declarative/qml/v8/qv8sequencewrapper_p_p.h index f609aff223..04814e9efe 100644 --- a/src/declarative/qml/v8/qv8sequencewrapper_p_p.h +++ b/src/declarative/qml/v8/qv8sequencewrapper_p_p.h @@ -79,7 +79,6 @@ public: enum ObjectType { Reference, Copy }; virtual QVariant toVariant() = 0; - virtual bool isEqual(const QVariant &v) = 0; virtual bool isEqual(const QV8SequenceResource *v) = 0; virtual quint32 lengthGetter() = 0; @@ -256,16 +255,6 @@ static QString convertUrlToString(QV8Engine *, const QUrl &v) } \ return QVariant::fromValue<SequenceType>(c); \ } \ - bool isEqual(const QVariant &v) \ - { \ - if (objectType == QV8SequenceResource::Reference) { \ - if (!object) \ - return false; \ - void *a[] = { &c, 0 }; \ - QMetaObject::metacall(object, QMetaObject::ReadProperty, propertyIndex, a); \ - } \ - return (c == v.value<SequenceType>()); \ - } \ bool isEqual(const QV8SequenceResource *v) \ { \ /* Note: two different sequences can never be equal (even if they */ \ |