diff --git a/main.cpp b/main.cpp index 8f1f147829..2404ee96c0 100644 --- a/main.cpp +++ b/main.cpp @@ -333,7 +333,6 @@ int main(int argc, char *argv[]) #endif // QMLJS_NO_LLVM case use_masm: case use_moth: { - QScopedPointer mm(new QQmlJS::VM::MemoryManager); QScopedPointer 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 debugger; if (enableDebugging) @@ -396,7 +395,7 @@ int main(int argc, char *argv[]) } } - mm->dumpStats(); + vm.memoryManager->dumpStats(); } return EXIT_SUCCESS; } } diff --git a/qmljs_engine.cpp b/qmljs_engine.cpp index 78fd64bf7b..e322cfa261 100644 --- a/qmljs_engine.cpp +++ b/qmljs_engine.cpp @@ -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() diff --git a/qmljs_engine.h b/qmljs_engine.h index dd856f62b7..e281620b21 100644 --- a/qmljs_engine.h +++ b/qmljs_engine.h @@ -157,7 +157,7 @@ struct ExecutionEngine QScopedPointer stringPool; QVector functions; - ExecutionEngine(MemoryManager *memoryManager, EvalISelFactory *iselFactory); + ExecutionEngine(EvalISelFactory *iselFactory); ~ExecutionEngine(); ExecutionContext *newContext();