Use a smart pointer for ExecutionEngine::stringPool
authorJędrzej Nowacki <jedrzej.nowacki@digia.com>
Thu, 13 Dec 2012 09:46:31 +0000 (10:46 +0100)
committerSimon Hausmann <simon.hausmann@digia.com>
Thu, 13 Dec 2012 11:45:07 +0000 (12:45 +0100)
Change-Id: I5434fbd146e9d8dcc0000327c5a5b953bc744b83
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
qmljs_engine.cpp
qmljs_engine.h

index 45db9fc..b65b358 100644 (file)
@@ -73,8 +73,8 @@ ExecutionEngine::ExecutionEngine(MemoryManager *memoryManager, EvalISelFactory *
 {
     MemoryManager::GCBlocker gcBlocker(memoryManager);
 
-    stringPool = new StringPool;
-    memoryManager->setStringPool(stringPool);
+    stringPool.reset(new StringPool);
+    memoryManager->setStringPool(stringPool.data());
     memoryManager->setExecutionEngine(this);
 
     rootContext = newContext();
@@ -212,7 +212,6 @@ ExecutionEngine::~ExecutionEngine()
 {
     delete globalObject.asObject();
     delete rootContext;
-    delete stringPool;
     qDeleteAll(functions);
 }
 
index bcaff09..16d8fc5 100644 (file)
@@ -156,7 +156,7 @@ struct ExecutionEngine
     QVector<ExceptionHandler> unwindStack;
     Value exception;
 
-    struct StringPool *stringPool;
+    QScopedPointer<struct StringPool> stringPool;
     QVector<Function *> functions;
 
     ExecutionEngine(MemoryManager *memoryManager, EvalISelFactory *iselFactory);