diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-01-05 13:20:27 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-04-12 13:58:30 +0000 |
commit | c7bac1588e0e6a65187042afbde072afa6b8cd9b (patch) | |
tree | ed9ebe3c03cf959111e6c7e422febb2dde2a89a7 /src/qml/jsruntime/qv4engine.cpp | |
parent | 340819e81cf36c01bd21a170fd1a932202257899 (diff) |
Remove the pool allocator from InternalClass
Makes it easier to transition it over to be controlled
by the GC.
Change-Id: I6bea738b3852abfc7870b71e639efc595eeb28fc
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4engine.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp index 82ce54224b..7f908ccef9 100644 --- a/src/qml/jsruntime/qv4engine.cpp +++ b/src/qml/jsruntime/qv4engine.cpp @@ -199,9 +199,7 @@ ExecutionEngine::ExecutionEngine(QJSEngine *jsEngine) identifierTable = new IdentifierTable(this); - classPool = new InternalClassPool; - - internalClasses[Class_Empty] = new (classPool) InternalClass(this); + internalClasses[Class_Empty] = new InternalClass(this); internalClasses[Class_String] = internalClasses[EngineBase::Class_Empty]->changeVTable(QV4::String::staticVTable()); internalClasses[Class_MemberData] = internalClasses[EngineBase::Class_Empty]->changeVTable(QV4::MemberData::staticVTable()); internalClasses[Class_SimpleArrayData] = internalClasses[EngineBase::Class_Empty]->changeVTable(QV4::SimpleArrayData::staticVTable()); @@ -497,8 +495,7 @@ ExecutionEngine::~ExecutionEngine() while (!compilationUnits.isEmpty()) (*compilationUnits.begin())->unlink(); - internalClasses[Class_Empty]->destroy(); - delete classPool; + internalClasses[Class_Empty]->destroyAll(); delete bumperPointerAllocator; delete regExpCache; delete regExpAllocator; @@ -536,7 +533,7 @@ void ExecutionEngine::initRootContext() InternalClass *ExecutionEngine::newClass(InternalClass *other) { - return new (classPool) InternalClass(other); + return new InternalClass(other); } InternalClass *ExecutionEngine::newInternalClass(const VTable *vtable, Object *prototype) @@ -922,7 +919,7 @@ void ExecutionEngine::markObjects(MarkStack *markStack) setter->mark(markStack); } - classPool->markObjects(markStack); + InternalClass::markObjects(internalClasses[EngineBase::Class_Empty], markStack); markStack->drain(); for (auto compilationUnit: compilationUnits) { |