Clean up memory manager ownership

Since we have now only one memory manager, we might as well let the
ExecutionEngine create and own it.

Change-Id: I908adadf64da59e0b8f4c09d4d9502785399cb99
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
This commit is contained in:
Simon Hausmann 2013-01-03 12:26:19 +01:00 committed by Lars Knoll
parent 215c0458e6
commit 03573f480a
3 changed files with 6 additions and 6 deletions

View File

@ -333,7 +333,6 @@ int main(int argc, char *argv[])
#endif // QMLJS_NO_LLVM
case use_masm:
case use_moth: {
QScopedPointer<QQmlJS::VM::MemoryManager> mm(new QQmlJS::VM::MemoryManager);
QScopedPointer<QQmlJS::EvalISelFactory> iSelFactory;
if (mode == use_moth) {
iSelFactory.reset(new QQmlJS::Moth::ISelFactory);
@ -341,7 +340,7 @@ int main(int argc, char *argv[])
iSelFactory.reset(new QQmlJS::MASM::ISelFactory);
}
QQmlJS::VM::ExecutionEngine vm(mm.data(), iSelFactory.data());
QQmlJS::VM::ExecutionEngine vm(iSelFactory.data());
QScopedPointer<QQmlJS::Debugging::Debugger> debugger;
if (enableDebugging)
@ -396,7 +395,7 @@ int main(int argc, char *argv[])
}
}
mm->dumpStats();
vm.memoryManager->dumpStats();
} return EXIT_SUCCESS;
}
}

View File

@ -66,8 +66,8 @@ public:
}
};
ExecutionEngine::ExecutionEngine(MemoryManager *memoryManager, EvalISelFactory *factory)
: memoryManager(memoryManager)
ExecutionEngine::ExecutionEngine(EvalISelFactory *factory)
: memoryManager(new QQmlJS::VM::MemoryManager)
, iselFactory(factory)
, debugger(0)
, globalObject(Value::nullValue())
@ -216,6 +216,7 @@ ExecutionEngine::~ExecutionEngine()
delete globalObject.asObject();
delete rootContext;
qDeleteAll(functions);
delete memoryManager;
}
ExecutionContext *ExecutionEngine::newContext()

View File

@ -157,7 +157,7 @@ struct ExecutionEngine
QScopedPointer<class StringPool> stringPool;
QVector<Function *> functions;
ExecutionEngine(MemoryManager *memoryManager, EvalISelFactory *iselFactory);
ExecutionEngine(EvalISelFactory *iselFactory);
~ExecutionEngine();
ExecutionContext *newContext();