diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2012-06-29 13:15:33 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-07-04 11:57:06 +0200 |
commit | 7481adc7d72665de7873b99f58764f2a6b906c9c (patch) | |
tree | 9d417a6615c91380f1c70d21f7149a270807c250 | |
parent | 1d7471d93b4463657f2721074f2a63a12ea18752 (diff) |
Add some private V8ASSERT macros.
Simple variation on the V8THROW macros to consilidate the normal usage
pattern of if (!condition) THROW.
Change-Id: I71aaabab705c3f73922efdaf8bb40b5dcc390101
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
-rw-r--r-- | src/qml/qml/v8/qv8engine_p.h | 11 | ||||
-rw-r--r-- | src/quick/items/qquickvisualadaptormodel.cpp | 18 | ||||
-rw-r--r-- | src/quick/items/qquickvisualdatamodel.cpp | 24 |
3 files changed, 25 insertions, 28 deletions
diff --git a/src/qml/qml/v8/qv8engine_p.h b/src/qml/qml/v8/qv8engine_p.h index 649edcdbb2..1e91de91b6 100644 --- a/src/qml/qml/v8/qv8engine_p.h +++ b/src/qml/qml/v8/qv8engine_p.h @@ -108,6 +108,17 @@ QT_BEGIN_NAMESPACE return; \ } +#define V8ASSERT_TYPE(condition, string) \ + if (!(condition)) { \ + v8::ThrowException(v8::Exception::TypeError(v8::String::New(string))); \ + return v8::Handle<v8::Value>(); \ + } +#define V8ASSERT_TYPE_SETTER(condition, string) \ + if (!(condition)) { \ + v8::ThrowException(v8::Exception::TypeError(v8::String::New(string))); \ + return; \ + } + #define V8_DEFINE_EXTENSION(dataclass, datafunction) \ static inline dataclass *datafunction(QV8Engine *engine) \ { \ diff --git a/src/quick/items/qquickvisualadaptormodel.cpp b/src/quick/items/qquickvisualadaptormodel.cpp index bc8c75933a..117997310b 100644 --- a/src/quick/items/qquickvisualadaptormodel.cpp +++ b/src/quick/items/qquickvisualadaptormodel.cpp @@ -67,8 +67,7 @@ static void addProperty(QMetaObjectBuilder *builder, int propertyId, const QByte static v8::Handle<v8::Value> get_index(v8::Local<v8::String>, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *data = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!data) - V8THROW_ERROR("Not a valid VisualData object"); + V8ASSERT_TYPE(data, "Not a valid VisualData object"); return v8::Int32::New(data->index); } @@ -316,8 +315,7 @@ v8::Handle<v8::Value> QQuickVDMCachedModelData::get_property( v8::Local<v8::String>, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *data = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!data) - V8THROW_ERROR("Not a valid VisualData object"); + V8ASSERT_TYPE(data, "Not a valid VisualData object"); QQuickVDMCachedModelData *modelData = static_cast<QQuickVDMCachedModelData *>(data); const int propertyId = info.Data()->Int32Value(); @@ -337,8 +335,7 @@ void QQuickVDMCachedModelData::set_property( v8::Local<v8::String>, v8::Local<v8::Value> value, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *data = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!data) - V8THROW_ERROR_SETTER("Not a valid VisualData object"); + V8ASSERT_TYPE_SETTER(data, "Not a valid VisualData object"); const int propertyId = info.Data()->Int32Value(); if (data->index == -1) { @@ -410,8 +407,7 @@ public: static v8::Handle<v8::Value> get_hasModelChildren(v8::Local<v8::String>, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *data = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!data) - V8THROW_ERROR("Not a valid VisualData object"); + V8ASSERT_TYPE(data, "Not a valid VisualData object"); const QQuickVisualAdaptorModel *const model = static_cast<QQuickVDMCachedModelData *>(data)->type->model; if (data->index >= 0 && *model) { @@ -682,8 +678,7 @@ public: static v8::Handle<v8::Value> get_modelData(v8::Local<v8::String>, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *data = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!data) - V8THROW_ERROR("Not a valid VisualData object"); + V8ASSERT_TYPE(data, "Not a valid VisualData object"); return data->engine->fromVariant(static_cast<QQuickVDMListAccessorData *>(data)->cachedData); } @@ -691,8 +686,7 @@ public: static void set_modelData(v8::Local<v8::String>, const v8::Handle<v8::Value> &value, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *data = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!data) - V8THROW_ERROR_SETTER("Not a valid VisualData object"); + V8ASSERT_TYPE_SETTER(data, "Not a valid VisualData object"); static_cast<QQuickVDMListAccessorData *>(data)->setModelData( data->engine->toVariant(value, QVariant::Invalid)); diff --git a/src/quick/items/qquickvisualdatamodel.cpp b/src/quick/items/qquickvisualdatamodel.cpp index e721391296..05709411f9 100644 --- a/src/quick/items/qquickvisualdatamodel.cpp +++ b/src/quick/items/qquickvisualdatamodel.cpp @@ -1628,8 +1628,7 @@ v8::Handle<v8::Value> QQuickVisualDataModelItemMetaType::get_model( v8::Local<v8::String>, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *cacheItem = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!cacheItem) - V8THROW_ERROR("Not a valid VisualData object"); + V8ASSERT_TYPE(cacheItem, "Not a valid VisualData object"); if (!cacheItem->metaType->model) return v8::Undefined(); @@ -1647,8 +1646,7 @@ v8::Handle<v8::Value> QQuickVisualDataModelItemMetaType::get_groups( v8::Local<v8::String>, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *cacheItem = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!cacheItem) - V8THROW_ERROR("Not a valid VisualData object"); + V8ASSERT_TYPE(cacheItem, "Not a valid VisualData object"); QStringList groups; for (int i = 1; i < cacheItem->metaType->groupCount; ++i) { @@ -1663,8 +1661,7 @@ void QQuickVisualDataModelItemMetaType::set_groups( v8::Local<v8::String>, v8::Local<v8::Value> value, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *cacheItem = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!cacheItem) - V8THROW_ERROR_SETTER("Not a valid VisualData object"); + V8ASSERT_TYPE_SETTER(cacheItem, "Not a valid VisualData object"); if (!cacheItem->metaType->model) return; @@ -1680,8 +1677,7 @@ v8::Handle<v8::Value> QQuickVisualDataModelItemMetaType::get_member( v8::Local<v8::String>, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *cacheItem = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!cacheItem) - V8THROW_ERROR("Not a valid VisualData object"); + V8ASSERT_TYPE(cacheItem, "Not a valid VisualData object"); return v8::Boolean::New(cacheItem->groups & (1 << info.Data()->Int32Value())); } @@ -1690,8 +1686,7 @@ void QQuickVisualDataModelItemMetaType::set_member( v8::Local<v8::String>, v8::Local<v8::Value> value, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *cacheItem = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!cacheItem) - V8THROW_ERROR_SETTER("Not a valid VisualData object"); + V8ASSERT_TYPE_SETTER(cacheItem, "Not a valid VisualData object"); if (!cacheItem->metaType->model) return; @@ -1715,8 +1710,7 @@ v8::Handle<v8::Value> QQuickVisualDataModelItemMetaType::get_index( v8::Local<v8::String>, const v8::AccessorInfo &info) { QQuickVisualDataModelItem *cacheItem = v8_resource_cast<QQuickVisualDataModelItem>(info.This()); - if (!cacheItem) - V8THROW_ERROR("Not a valid VisualData object"); + V8ASSERT_TYPE(cacheItem, "Not a valid VisualData object"); return v8::Integer::New(cacheItem->groupIndex(Compositor::Group(info.Data()->Int32Value()))); } @@ -2984,8 +2978,7 @@ public: static v8::Handle<v8::Value> get_change(quint32 index, const v8::AccessorInfo &info) { QQuickVisualDataGroupChangeArray *array = v8_resource_cast<QQuickVisualDataGroupChangeArray>(info.This()); - if (!array) - V8THROW_ERROR("Not a valid change array"); + V8ASSERT_TYPE(array, "Not a valid change array"); if (index >= array->count()) return v8::Undefined(); @@ -3004,8 +2997,7 @@ public: static v8::Handle<v8::Value> get_length(v8::Local<v8::String>, const v8::AccessorInfo &info) { QQuickVisualDataGroupChangeArray *array = v8_resource_cast<QQuickVisualDataGroupChangeArray>(info.This()); - if (!array) - V8THROW_ERROR("Not a valid change array"); + V8ASSERT_TYPE(array, "Not a valid change array"); return v8::Integer::New(array->count()); } |