aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2014-11-04 15:25:09 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2014-11-08 19:48:00 +0100
commit980e7fae0a010d519907a58ab891cc6ca94eb56a (patch)
tree3d0aec781e52b49beeaf3ef990e9196746fb6a06 /src/qml/jsruntime
parentf3f86c5eaed6940c6b90132c811cbf04ff9a8e81 (diff)
Move Data of Variant and ArgumentsObject into Heap namespace
Change-Id: Id2092a15c9fb5341d9b5cf4a9ac7a978308e4174 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime')
-rw-r--r--src/qml/jsruntime/qv4argumentsobject.cpp6
-rw-r--r--src/qml/jsruntime/qv4argumentsobject_p.h79
-rw-r--r--src/qml/jsruntime/qv4arrayobject.cpp4
-rw-r--r--src/qml/jsruntime/qv4arrayobject_p.h14
-rw-r--r--src/qml/jsruntime/qv4booleanobject.cpp4
-rw-r--r--src/qml/jsruntime/qv4booleanobject_p.h14
-rw-r--r--src/qml/jsruntime/qv4dateobject.cpp8
-rw-r--r--src/qml/jsruntime/qv4dateobject_p.h48
-rw-r--r--src/qml/jsruntime/qv4variantobject.cpp4
-rw-r--r--src/qml/jsruntime/qv4variantobject_p.h29
10 files changed, 121 insertions, 89 deletions
diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp
index 4734c9e7cb..5899fedb57 100644
--- a/src/qml/jsruntime/qv4argumentsobject.cpp
+++ b/src/qml/jsruntime/qv4argumentsobject.cpp
@@ -38,16 +38,16 @@ using namespace QV4;
DEFINE_OBJECT_VTABLE(ArgumentsObject);
-ArgumentsObject::Data::Data(CallContext *context)
+Heap::ArgumentsObject::ArgumentsObject(QV4::CallContext *context)
: Heap::Object(context->d()->strictMode ? context->d()->engine->strictArgumentsObjectClass : context->d()->engine->argumentsObjectClass)
, context(context)
, fullyCreated(false)
{
- Q_ASSERT(internalClass->vtable == staticVTable());
+ Q_ASSERT(internalClass->vtable == QV4::ArgumentsObject::staticVTable());
ExecutionEngine *v4 = context->d()->engine;
Scope scope(v4);
- Scoped<ArgumentsObject> args(scope, this);
+ Scoped<QV4::ArgumentsObject> args(scope, this);
args->setArrayType(Heap::ArrayData::Complex);
diff --git a/src/qml/jsruntime/qv4argumentsobject_p.h b/src/qml/jsruntime/qv4argumentsobject_p.h
index f215d986be..38ba741bc5 100644
--- a/src/qml/jsruntime/qv4argumentsobject_p.h
+++ b/src/qml/jsruntime/qv4argumentsobject_p.h
@@ -40,51 +40,67 @@ QT_BEGIN_NAMESPACE
namespace QV4 {
+namespace Heap {
+
+struct ArgumentsGetterFunction : FunctionObject {
+ inline ArgumentsGetterFunction(QV4::ExecutionContext *scope, uint index);
+ uint index;
+};
+
+struct ArgumentsSetterFunction : FunctionObject {
+ inline ArgumentsSetterFunction(QV4::ExecutionContext *scope, uint index);
+ uint index;
+};
+
+struct ArgumentsObject : Object {
+ enum {
+ LengthPropertyIndex = 0,
+ CalleePropertyIndex = 1,
+ CallerPropertyIndex = 3
+ };
+ ArgumentsObject(QV4::CallContext *context);
+ QV4::CallContext *context;
+ bool fullyCreated;
+ MemberData *mappedArguments;
+};
+
+}
+
struct ArgumentsGetterFunction: FunctionObject
{
- struct Data : Heap::FunctionObject {
- Data(ExecutionContext *scope, uint index)
- : Heap::FunctionObject(scope)
- , index(index)
- {
- setVTable(staticVTable());
- }
- uint index;
- };
- V4_OBJECT(FunctionObject)
+ V4_OBJECT2(ArgumentsGetterFunction, FunctionObject)
uint index() const { return d()->index; }
-
static ReturnedValue call(Managed *that, CallData *d);
};
+inline
+Heap::ArgumentsGetterFunction::ArgumentsGetterFunction(QV4::ExecutionContext *scope, uint index)
+ : Heap::FunctionObject(scope)
+ , index(index)
+{
+ setVTable(QV4::ArgumentsGetterFunction::staticVTable());
+}
+
struct ArgumentsSetterFunction: FunctionObject
{
- struct Data : Heap::FunctionObject {
- Data(ExecutionContext *scope, uint index)
- : Heap::FunctionObject(scope)
- , index(index)
- {
- setVTable(staticVTable());
- }
- uint index;
- };
- V4_OBJECT(FunctionObject)
+ V4_OBJECT2(ArgumentsSetterFunction, FunctionObject)
uint index() const { return d()->index; }
-
static ReturnedValue call(Managed *that, CallData *callData);
};
+inline
+Heap::ArgumentsSetterFunction::ArgumentsSetterFunction(QV4::ExecutionContext *scope, uint index)
+ : Heap::FunctionObject(scope)
+ , index(index)
+{
+ setVTable(QV4::ArgumentsSetterFunction::staticVTable());
+}
+
struct ArgumentsObject: Object {
- struct Data : Heap::Object {
- Data(CallContext *context);
- CallContext *context;
- bool fullyCreated;
- Heap::MemberData *mappedArguments;
- };
- V4_OBJECT(Object)
+ V4_OBJECT2(ArgumentsObject, Object)
Q_MANAGED_TYPE(ArgumentsObject)
CallContext *context() const { return d()->context; }
@@ -96,11 +112,6 @@ struct ArgumentsObject: Object {
!static_cast<ArgumentsObject *>(m)->context()->d()->strictMode;
}
- enum {
- LengthPropertyIndex = 0,
- CalleePropertyIndex = 1,
- CallerPropertyIndex = 3
- };
bool defineOwnProperty(ExecutionContext *ctx, uint index, const Property &desc, PropertyAttributes attrs);
static ReturnedValue getIndexed(Managed *m, uint index, bool *hasProperty);
static void putIndexed(Managed *m, uint index, const ValueRef value);
diff --git a/src/qml/jsruntime/qv4arrayobject.cpp b/src/qml/jsruntime/qv4arrayobject.cpp
index 5da80c63ba..0935da3255 100644
--- a/src/qml/jsruntime/qv4arrayobject.cpp
+++ b/src/qml/jsruntime/qv4arrayobject.cpp
@@ -41,10 +41,10 @@ using namespace QV4;
DEFINE_OBJECT_VTABLE(ArrayCtor);
-ArrayCtor::Data::Data(ExecutionContext *scope)
+Heap::ArrayCtor::ArrayCtor(QV4::ExecutionContext *scope)
: Heap::FunctionObject(scope, QStringLiteral("Array"))
{
- setVTable(staticVTable());
+ setVTable(QV4::ArrayCtor::staticVTable());
}
ReturnedValue ArrayCtor::construct(Managed *m, CallData *callData)
diff --git a/src/qml/jsruntime/qv4arrayobject_p.h b/src/qml/jsruntime/qv4arrayobject_p.h
index 4c211701ce..cbb3c24bc2 100644
--- a/src/qml/jsruntime/qv4arrayobject_p.h
+++ b/src/qml/jsruntime/qv4arrayobject_p.h
@@ -41,13 +41,17 @@ QT_BEGIN_NAMESPACE
namespace QV4 {
+namespace Heap {
+
+struct ArrayCtor : FunctionObject {
+ ArrayCtor(QV4::ExecutionContext *scope);
+};
+
+}
+
struct ArrayCtor: FunctionObject
{
- struct Data : Heap::FunctionObject {
- Data(ExecutionContext *scope);
- };
-
- V4_OBJECT(FunctionObject)
+ V4_OBJECT2(ArrayCtor, FunctionObject)
static ReturnedValue construct(Managed *m, CallData *callData);
static ReturnedValue call(Managed *that, CallData *callData);
diff --git a/src/qml/jsruntime/qv4booleanobject.cpp b/src/qml/jsruntime/qv4booleanobject.cpp
index 345d32f3bd..6de7059034 100644
--- a/src/qml/jsruntime/qv4booleanobject.cpp
+++ b/src/qml/jsruntime/qv4booleanobject.cpp
@@ -38,10 +38,10 @@ using namespace QV4;
DEFINE_OBJECT_VTABLE(BooleanCtor);
DEFINE_OBJECT_VTABLE(BooleanObject);
-BooleanCtor::Data::Data(ExecutionContext *scope)
+Heap::BooleanCtor::BooleanCtor(QV4::ExecutionContext *scope)
: Heap::FunctionObject(scope, QStringLiteral("Boolean"))
{
- setVTable(staticVTable());
+ setVTable(QV4::BooleanCtor::staticVTable());
}
ReturnedValue BooleanCtor::construct(Managed *m, CallData *callData)
diff --git a/src/qml/jsruntime/qv4booleanobject_p.h b/src/qml/jsruntime/qv4booleanobject_p.h
index ddd212eb79..c956c01853 100644
--- a/src/qml/jsruntime/qv4booleanobject_p.h
+++ b/src/qml/jsruntime/qv4booleanobject_p.h
@@ -41,13 +41,17 @@ QT_BEGIN_NAMESPACE
namespace QV4 {
+namespace Heap {
+
+struct BooleanCtor : FunctionObject {
+ BooleanCtor(QV4::ExecutionContext *scope);
+};
+
+}
+
struct BooleanCtor: FunctionObject
{
- struct Data : Heap::FunctionObject {
- Data(ExecutionContext *scope);
- };
-
- V4_OBJECT(FunctionObject)
+ V4_OBJECT2(BooleanCtor, FunctionObject)
static ReturnedValue construct(Managed *, CallData *callData);
static ReturnedValue call(Managed *that, CallData *callData);
diff --git a/src/qml/jsruntime/qv4dateobject.cpp b/src/qml/jsruntime/qv4dateobject.cpp
index 9a43d6a321..749574fc29 100644
--- a/src/qml/jsruntime/qv4dateobject.cpp
+++ b/src/qml/jsruntime/qv4dateobject.cpp
@@ -634,10 +634,10 @@ static double getLocalTZA()
DEFINE_OBJECT_VTABLE(DateObject);
-DateObject::Data::Data(ExecutionEngine *engine, const QDateTime &date)
+Heap::DateObject::DateObject(QV4::ExecutionEngine *engine, const QDateTime &date)
: Heap::Object(engine->dateClass)
{
- setVTable(staticVTable());
+ setVTable(QV4::DateObject::staticVTable());
value.setDouble(date.isValid() ? date.toMSecsSinceEpoch() : qSNaN());
}
@@ -648,10 +648,10 @@ QDateTime DateObject::toQDateTime() const
DEFINE_OBJECT_VTABLE(DateCtor);
-DateCtor::Data::Data(ExecutionContext *scope)
+Heap::DateCtor::DateCtor(QV4::ExecutionContext *scope)
: Heap::FunctionObject(scope, QStringLiteral("Date"))
{
- setVTable(staticVTable());
+ setVTable(QV4::DateCtor::staticVTable());
}
ReturnedValue DateCtor::construct(Managed *m, CallData *callData)
diff --git a/src/qml/jsruntime/qv4dateobject_p.h b/src/qml/jsruntime/qv4dateobject_p.h
index a3d1f23b1d..4eba963fac 100644
--- a/src/qml/jsruntime/qv4dateobject_p.h
+++ b/src/qml/jsruntime/qv4dateobject_p.h
@@ -43,23 +43,27 @@ class QDateTime;
namespace QV4 {
+namespace Heap {
+
+struct DateObject : Object {
+ DateObject(QV4::ExecutionEngine *engine, const ValueRef date)
+ : Object(engine->dateClass)
+ {
+ value = date;
+ }
+ DateObject(QV4::ExecutionEngine *engine, const QDateTime &date);
+ inline DateObject(InternalClass *ic);
+ Value value;
+};
+
+struct DateCtor : FunctionObject {
+ DateCtor(QV4::ExecutionContext *scope);
+};
+
+}
+
struct DateObject: Object {
- struct Data : Heap::Object {
- Data(ExecutionEngine *engine, const ValueRef date)
- : Heap::Object(engine->dateClass)
- {
- value = date;
- }
- Data(ExecutionEngine *engine, const QDateTime &date);
- Data(InternalClass *ic)
- : Heap::Object(ic)
- {
- Q_ASSERT(internalClass->vtable == staticVTable());
- value = Primitive::fromDouble(qSNaN());
- }
- Value value;
- };
- V4_OBJECT(Object)
+ V4_OBJECT2(DateObject, Object)
Q_MANAGED_TYPE(DateObject)
@@ -70,12 +74,16 @@ struct DateObject: Object {
QDateTime toQDateTime() const;
};
+Heap::DateObject::DateObject(InternalClass *ic)
+ : Heap::Object(ic)
+{
+ Q_ASSERT(internalClass->vtable == QV4::DateObject::staticVTable());
+ value = Primitive::fromDouble(qSNaN());
+}
+
struct DateCtor: FunctionObject
{
- struct Data : Heap::FunctionObject {
- Data(ExecutionContext *scope);
- };
- V4_OBJECT(FunctionObject)
+ V4_OBJECT2(DateCtor, FunctionObject)
static ReturnedValue construct(Managed *, CallData *callData);
static ReturnedValue call(Managed *that, CallData *);
diff --git a/src/qml/jsruntime/qv4variantobject.cpp b/src/qml/jsruntime/qv4variantobject.cpp
index da3dd9f4e5..1a76839e59 100644
--- a/src/qml/jsruntime/qv4variantobject.cpp
+++ b/src/qml/jsruntime/qv4variantobject.cpp
@@ -43,12 +43,12 @@ using namespace QV4;
DEFINE_OBJECT_VTABLE(VariantObject);
-VariantObject::Data::Data(InternalClass *ic)
+Heap::VariantObject::VariantObject(InternalClass *ic)
: Heap::Object(ic)
{
}
-VariantObject::Data::Data(ExecutionEngine *engine, const QVariant &value)
+Heap::VariantObject::VariantObject(QV4::ExecutionEngine *engine, const QVariant &value)
: Heap::Object(engine->variantClass)
{
data = value;
diff --git a/src/qml/jsruntime/qv4variantobject_p.h b/src/qml/jsruntime/qv4variantobject_p.h
index d2dce35eba..5d68de1be3 100644
--- a/src/qml/jsruntime/qv4variantobject_p.h
+++ b/src/qml/jsruntime/qv4variantobject_p.h
@@ -56,20 +56,25 @@ QT_BEGIN_NAMESPACE
namespace QV4 {
+namespace Heap {
+
+struct VariantObject : Object, public ExecutionEngine::ScarceResourceData
+{
+ VariantObject(InternalClass *ic);
+ VariantObject(QV4::ExecutionEngine *engine, const QVariant &value);
+ ~VariantObject() {
+ if (isScarce())
+ node.remove();
+ }
+ bool isScarce() const;
+ int vmePropertyReferenceCount;
+};
+
+}
+
struct VariantObject : Object
{
- struct Data : Heap::Object, public ExecutionEngine::ScarceResourceData
- {
- Data(InternalClass *ic);
- Data(ExecutionEngine *engine, const QVariant &value);
- ~Data() {
- if (isScarce())
- node.remove();
- }
- bool isScarce() const;
- int vmePropertyReferenceCount;
- };
- V4_OBJECT(Object)
+ V4_OBJECT2(VariantObject, Object)
static QVariant toVariant(const ValueRef v);