diff options
Diffstat (limited to 'src/qml')
-rw-r--r-- | src/qml/compiler/qv4isel_masm.cpp | 6 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4context.cpp | 10 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4context_p.h | 4 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4globalobject.cpp | 8 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4script.cpp | 8 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4vme_moth.cpp | 2 |
6 files changed, 5 insertions, 33 deletions
diff --git a/src/qml/compiler/qv4isel_masm.cpp b/src/qml/compiler/qv4isel_masm.cpp index 41da2c7c3b..6895205eaf 100644 --- a/src/qml/compiler/qv4isel_masm.cpp +++ b/src/qml/compiler/qv4isel_masm.cpp @@ -298,14 +298,16 @@ Assembler::Pointer Assembler::loadTempAddress(RegisterID reg, V4IR::Temp *t) Assembler::Pointer Assembler::loadStringAddress(RegisterID reg, const QString &string) { - loadPtr(Address(Assembler::ContextRegister, qOffsetOf(QV4::ExecutionContext, runtimeStrings)), reg); + loadPtr(Address(Assembler::ContextRegister, qOffsetOf(QV4::ExecutionContext, compilationUnit)), Assembler::ScratchRegister); + loadPtr(Address(Assembler::ScratchRegister, qOffsetOf(QV4::CompiledData::CompilationUnit, runtimeStrings)), reg); const int id = _isel->registerString(string); return Pointer(reg, id * sizeof(QV4::SafeString)); } void Assembler::loadStringRef(RegisterID reg, const QString &string) { - loadPtr(Address(Assembler::ContextRegister, qOffsetOf(QV4::ExecutionContext, runtimeStrings)), reg); + loadPtr(Address(Assembler::ContextRegister, qOffsetOf(QV4::ExecutionContext, compilationUnit)), reg); + loadPtr(Address(reg, qOffsetOf(QV4::CompiledData::CompilationUnit, runtimeStrings)), reg); const int id = _isel->registerString(string); addPtr(TrustedImmPtr(id * sizeof(QV4::SafeString)), reg); } diff --git a/src/qml/jsruntime/qv4context.cpp b/src/qml/jsruntime/qv4context.cpp index ae9a72d760..d47a68423c 100644 --- a/src/qml/jsruntime/qv4context.cpp +++ b/src/qml/jsruntime/qv4context.cpp @@ -77,9 +77,7 @@ CallContext *ExecutionContext::newCallContext(void *stackSpace, Value *locals, F if (function->function) { c->compilationUnit = function->function->compilationUnit; - c->compiledFunction = function->function->compiledFunction; c->lookups = c->compilationUnit->runtimeLookups; - c->runtimeStrings = c->compilationUnit->runtimeStrings; } c->locals = locals; @@ -120,9 +118,7 @@ CallContext *ExecutionContext::newCallContext(FunctionObject *function, CallData if (function->function) { c->compilationUnit = function->function->compilationUnit; - c->compiledFunction = function->function->compiledFunction; c->lookups = c->compilationUnit->runtimeLookups; - c->runtimeStrings = c->compilationUnit->runtimeStrings; } c->locals = (Value *)(c + 1); @@ -230,9 +226,7 @@ void WithContext::initWithContext(ExecutionContext *p, Object *with) callData = p->callData; outer = p; lookups = p->lookups; - runtimeStrings = p->runtimeStrings; compilationUnit = p->compilationUnit; - compiledFunction = p->compiledFunction; withObject = with; } @@ -244,9 +238,7 @@ void CatchContext::initCatchContext(ExecutionContext *p, String *exceptionVarNam callData = p->callData; outer = p; lookups = p->lookups; - runtimeStrings = p->runtimeStrings; compilationUnit = p->compilationUnit; - compiledFunction = p->compiledFunction; this->exceptionVarName = exceptionVarName; this->exceptionValue = exceptionValue; @@ -273,9 +265,7 @@ void CallContext::initQmlContext(ExecutionContext *parentContext, Object *qml, F if (function->function) { compilationUnit = function->function->compilationUnit; - compiledFunction = function->function->compiledFunction; lookups = compilationUnit->runtimeLookups; - runtimeStrings = compilationUnit->runtimeStrings; } locals = (Value *)(this + 1); diff --git a/src/qml/jsruntime/qv4context_p.h b/src/qml/jsruntime/qv4context_p.h index efa7a07c1d..4171d9e73d 100644 --- a/src/qml/jsruntime/qv4context_p.h +++ b/src/qml/jsruntime/qv4context_p.h @@ -86,9 +86,7 @@ struct Q_QML_EXPORT ExecutionContext ExecutionContext *parent; ExecutionContext *outer; Lookup *lookups; - SafeString *runtimeStrings; CompiledData::CompilationUnit *compilationUnit; - const CompiledData::Function *compiledFunction; ExecutionContext *next; // used in the GC struct EvalCode @@ -109,9 +107,7 @@ struct Q_QML_EXPORT ExecutionContext parent = parentContext; outer = 0; lookups = 0; - runtimeStrings = 0; compilationUnit = 0; - compiledFunction = 0; currentEvalCode = 0; interpreterInstructionPointer = 0; } diff --git a/src/qml/jsruntime/qv4globalobject.cpp b/src/qml/jsruntime/qv4globalobject.cpp index f6f59b2f05..7880b1a69e 100644 --- a/src/qml/jsruntime/qv4globalobject.cpp +++ b/src/qml/jsruntime/qv4globalobject.cpp @@ -407,11 +407,7 @@ ReturnedValue EvalFunction::evalCall(Value /*thisObject*/, Value *args, int argc ctx->strictMode = strictMode; CompiledData::CompilationUnit * const oldCompilationUnit = ctx->compilationUnit; - const CompiledData::Function * const oldCompiledFunction = ctx->compiledFunction; - SafeString * const oldRuntimeStrings = ctx->runtimeStrings; ctx->compilationUnit = function->compilationUnit; - ctx->compiledFunction = function->compiledFunction; - ctx->runtimeStrings = function->compilationUnit->runtimeStrings; ScopedValue result(scope); try { @@ -420,8 +416,6 @@ ReturnedValue EvalFunction::evalCall(Value /*thisObject*/, Value *args, int argc ctx->strictMode = cstrict; ctx->currentEvalCode = evalCode.next; ctx->compilationUnit = oldCompilationUnit; - ctx->compiledFunction = oldCompiledFunction; - ctx->runtimeStrings = oldRuntimeStrings; if (strictMode) ex.partiallyUnwindContext(parentContext); throw; @@ -430,8 +424,6 @@ ReturnedValue EvalFunction::evalCall(Value /*thisObject*/, Value *args, int argc ctx->strictMode = cstrict; ctx->currentEvalCode = evalCode.next; ctx->compilationUnit = oldCompilationUnit; - ctx->compiledFunction = oldCompiledFunction; - ctx->runtimeStrings = oldRuntimeStrings; while (engine->current != parentContext) engine->popContext(); diff --git a/src/qml/jsruntime/qv4script.cpp b/src/qml/jsruntime/qv4script.cpp index a6cb40fff8..7a19e385a1 100644 --- a/src/qml/jsruntime/qv4script.cpp +++ b/src/qml/jsruntime/qv4script.cpp @@ -228,14 +228,10 @@ ReturnedValue Script::run() bool strict = scope->strictMode; Lookup *oldLookups = scope->lookups; CompiledData::CompilationUnit * const oldCompilationUnit = scope->compilationUnit; - const CompiledData::Function * const oldCompiledFunction = scope->compiledFunction; - SafeString * const oldRuntimeStrings = scope->runtimeStrings; scope->strictMode = vmFunction->isStrict(); scope->lookups = vmFunction->compilationUnit->runtimeLookups; scope->compilationUnit = vmFunction->compilationUnit; - scope->compiledFunction = vmFunction->compiledFunction; - scope->runtimeStrings = vmFunction->compilationUnit->runtimeStrings; QV4::ScopedValue result(valueScope); try { @@ -244,15 +240,11 @@ ReturnedValue Script::run() scope->strictMode = strict; scope->lookups = oldLookups; scope->compilationUnit = oldCompilationUnit; - scope->compiledFunction = oldCompiledFunction; - scope->runtimeStrings = oldRuntimeStrings; throw; } scope->lookups = oldLookups; scope->compilationUnit = oldCompilationUnit; - scope->compiledFunction = oldCompiledFunction; - scope->runtimeStrings = oldRuntimeStrings; return result.asReturnedValue(); diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index ce2f76042f..0d4be2169b 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -242,7 +242,7 @@ QV4::ReturnedValue VME::run(QV4::ExecutionContext *context, const uchar *&code, } #endif - QV4::SafeString * const runtimeStrings = context->runtimeStrings; + QV4::SafeString * const runtimeStrings = context->compilationUnit->runtimeStrings; context->interpreterInstructionPointer = &code; #ifdef MOTH_THREADED_INTERPRETER |