diff options
author | Lars Knoll <lars.knoll@digia.com> | 2012-12-13 12:09:04 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-12-13 12:38:11 +0100 |
commit | 9edd6967753c16512c8c589f3dedcae02687070a (patch) | |
tree | a8c4460d5c556fa9b087c229ba88dd68980ce9ef /qv4isel_masm.cpp | |
parent | d6fcbdbf5182dcd549ef685cfeb2e3e90d3e81c7 (diff) |
Correctly set up nested functions
Make sure we have the correct set of nested functions in
both IR::Function and VM::Function. This is required so
that closures can work correctly.
Change-Id: I42493d5ee503090653b71650c8d19e06c4bcfdda
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'qv4isel_masm.cpp')
-rw-r--r-- | qv4isel_masm.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/qv4isel_masm.cpp b/qv4isel_masm.cpp index cabd1f7c5c..298d0b51f1 100644 --- a/qv4isel_masm.cpp +++ b/qv4isel_masm.cpp @@ -381,7 +381,7 @@ InstructionSelection::~InstructionSelection() delete _asm; } -VM::Function *InstructionSelection::run(IR::Function *function) +void InstructionSelection::run(VM::Function *vmFunction, IR::Function *function) { qSwap(_function, function); Assembler* oldAssembler = _asm; @@ -425,14 +425,11 @@ VM::Function *InstructionSelection::run(IR::Function *function) #endif _asm->ret(); - VM::Function *vmFunc = vmFunction(_function); - _asm->link(vmFunc); + _asm->link(vmFunction); qSwap(_function, function); delete _asm; _asm = oldAssembler; - - return vmFunc; } String *InstructionSelection::identifier(const QString &s) |