aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4managed.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2014-05-08 14:35:30 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2014-07-22 13:49:14 +0200
commite8746aeaecc4b1cfe312d8ed943ad74bd53f66e2 (patch)
treef4f391707da4054502b4826eedec5cc80bfe0a1c /src/qml/jsruntime/qv4managed.cpp
parent0732e0177e62590c812f0fea9c32f7d427bd933f (diff)
Start implement new Object creation pattern
Create objects through a static create() method that returns a pointer to the objects Data. This will later on simplify breaking the direct connection between Object and Object::Data. Change-Id: Id8daa3c766429bc36f432868e1957846147c96b6 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4managed.cpp')
-rw-r--r--src/qml/jsruntime/qv4managed.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/qml/jsruntime/qv4managed.cpp b/src/qml/jsruntime/qv4managed.cpp
index 3b0bdd08e2..5613e65446 100644
--- a/src/qml/jsruntime/qv4managed.cpp
+++ b/src/qml/jsruntime/qv4managed.cpp
@@ -164,7 +164,22 @@ void Managed::setVTable(const ManagedVTable *vt)
d()->internalClass = internalClass()->changeVTable(vt);
}
+void Managed::Data::setVTable(const ManagedVTable *vt)
+{
+ Q_ASSERT(internalClass);
+ internalClass = internalClass->changeVTable(vt);
+}
+
+
bool Managed::isEqualTo(Managed *, Managed *)
{
return false;
}
+
+
+void *Managed::Data::operator new(size_t size, ExecutionEngine *e)
+{
+ assert(e);
+
+ return e->memoryManager->allocManaged(size);
+}