aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/qml/compiler/qv4isel_moth.cpp7
-rw-r--r--src/qml/compiler/qv4isel_moth_p.h2
-rw-r--r--src/qml/jit/qv4isel_masm.cpp4
-rw-r--r--src/qml/jit/qv4isel_masm_p.h2
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;
};