diff options
-rw-r--r-- | src/qml/compiler/qv4isel_moth.cpp | 7 | ||||
-rw-r--r-- | src/qml/compiler/qv4isel_moth_p.h | 2 | ||||
-rw-r--r-- | src/qml/jit/qv4isel_masm.cpp | 4 | ||||
-rw-r--r-- | src/qml/jit/qv4isel_masm_p.h | 2 |
4 files changed, 7 insertions, 8 deletions
diff --git a/src/qml/compiler/qv4isel_moth.cpp b/src/qml/compiler/qv4isel_moth.cpp index c684aa3e79..7c67ae2301 100644 --- a/src/qml/compiler/qv4isel_moth.cpp +++ b/src/qml/compiler/qv4isel_moth.cpp @@ -328,9 +328,8 @@ InstructionSelection::InstructionSelection(QQmlEnginePrivate *qmlEngine, QV4::Ex , _codeNext(0) , _codeEnd(0) , _currentStatement(0) -{ - compilationUnit = new CompilationUnit; -} + , compilationUnit(new CompilationUnit) +{} InstructionSelection::~InstructionSelection() { @@ -459,7 +458,7 @@ QV4::CompiledData::CompilationUnit *InstructionSelection::backendCompileStep() int i = 0; foreach (IR::Function *irFunction, irModule->functions) compilationUnit->codeRefs[i++] = codeRefs[irFunction]; - return compilationUnit; + return compilationUnit.take(); } void InstructionSelection::callValue(IR::Expr *value, IR::ExprList *args, IR::Expr *result) diff --git a/src/qml/compiler/qv4isel_moth_p.h b/src/qml/compiler/qv4isel_moth_p.h index 6f9f001f28..2fdb7c007c 100644 --- a/src/qml/compiler/qv4isel_moth_p.h +++ b/src/qml/compiler/qv4isel_moth_p.h @@ -184,7 +184,7 @@ private: QSet<IR::Jump *> _removableJumps; IR::Stmt *_currentStatement; - CompilationUnit *compilationUnit; + QScopedPointer<CompilationUnit> compilationUnit; QHash<IR::Function *, QByteArray> codeRefs; }; diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index f6c1a03273..30df7bfe3b 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -203,9 +203,9 @@ InstructionSelection::InstructionSelection(QQmlEnginePrivate *qmlEngine, QV4::Ex : EvalInstructionSelection(execAllocator, module, jsGenerator) , _block(0) , _as(0) + , compilationUnit(new CompilationUnit) , qmlEngine(qmlEngine) { - compilationUnit = new CompilationUnit; compilationUnit->codeRefs.resize(module->functions.size()); } @@ -298,7 +298,7 @@ const void *InstructionSelection::addConstantTable(QVector<Primitive> *values) QV4::CompiledData::CompilationUnit *InstructionSelection::backendCompileStep() { - return compilationUnit; + return compilationUnit.take(); } void InstructionSelection::callBuiltinInvalid(IR::Name *func, IR::ExprList *args, IR::Expr *result) diff --git a/src/qml/jit/qv4isel_masm_p.h b/src/qml/jit/qv4isel_masm_p.h index 83d2464ef3..9c0bc73a65 100644 --- a/src/qml/jit/qv4isel_masm_p.h +++ b/src/qml/jit/qv4isel_masm_p.h @@ -254,7 +254,7 @@ private: QSet<IR::Jump *> _removableJumps; Assembler* _as; - CompilationUnit *compilationUnit; + QScopedPointer<CompilationUnit> compilationUnit; QQmlEnginePrivate *qmlEngine; }; |