@@ -1277,7 +1277,7 @@ function Compiler:compileStatement(statement, funcDepth)
12771277 self :addStatement (self :setRegister (scope , tmpReg , Ast .IndexExpression (self :register (scope , baseReg ), self :register (scope , tmpReg ))), {tmpReg }, {tmpReg , baseReg }, false );
12781278
12791279 self :addStatement (self :setRegister (scope , tmpReg , Ast .FunctionCallExpression (self :register (scope , tmpReg ), args )), {tmpReg }, {tmpReg , unpack (regs )}, true );
1280- self : freeRegister ( baseReg , false );
1280+
12811281 self :freeRegister (tmpReg , false );
12821282 for i , reg in ipairs (regs ) do
12831283 self :freeRegister (reg , false );
@@ -2004,9 +2004,6 @@ function Compiler:compileExpression(expression, funcDepth, numReturns)
20042004 end
20052005 end
20062006
2007-
2008-
2009-
20102007 self :freeRegister (baseReg , false );
20112008 for i , reg in ipairs (regs ) do
20122009 self :freeRegister (reg , false );
@@ -2052,9 +2049,9 @@ function Compiler:compileExpression(expression, funcDepth, numReturns)
20522049 self :addStatement (self :setRegister (scope , tmpReg , Ast .IndexExpression (self :register (scope , baseReg ), self :register (scope , tmpReg ))), {tmpReg }, {baseReg , tmpReg }, false );
20532050
20542051 if returnAll then
2055- self :addStatement (self :setRegister (scope , retRegs [1 ], Ast .TableConstructorExpression {Ast .TableEntry (Ast .FunctionCallExpression (self :register (scope , tmpReg ), args ))}), {retRegs [1 ]}, {baseReg , unpack (regs )}, true );
2052+ self :addStatement (self :setRegister (scope , retRegs [1 ], Ast .TableConstructorExpression {Ast .TableEntry (Ast .FunctionCallExpression (self :register (scope , tmpReg ), args ))}), {retRegs [1 ]}, {tmpReg , unpack (regs )}, true );
20562053 else
2057- self :addStatement (self :setRegister (scope , tmpReg , Ast .TableConstructorExpression {Ast .TableEntry (Ast .FunctionCallExpression (self :register (scope , tmpReg ), args ))}), {tmpReg }, {baseReg , unpack (regs )}, true );
2054+ self :addStatement (self :setRegister (scope , tmpReg , Ast .TableConstructorExpression {Ast .TableEntry (Ast .FunctionCallExpression (self :register (scope , tmpReg ), args ))}), {tmpReg }, {tmpReg , unpack (regs )}, true );
20582055
20592056 for i , reg in ipairs (retRegs ) do
20602057 self :addStatement (self :setRegister (scope , reg , Ast .IndexExpression (self :register (scope , tmpReg ), Ast .NumberExpression (i ))), {reg }, {tmpReg }, false );
@@ -2071,7 +2068,6 @@ function Compiler:compileExpression(expression, funcDepth, numReturns)
20712068 self :addStatement (self :setRegister (scope , retRegs [1 ], Ast .FunctionCallExpression (self :register (scope , tmpReg ), args )), {retRegs [1 ]}, {baseReg , unpack (regs )}, true );
20722069 end
20732070
2074- self :freeRegister (baseReg , false );
20752071 for i , reg in ipairs (regs ) do
20762072 self :freeRegister (reg , false );
20772073 end
0 commit comments