ソースを参照

Fix recording of metamethod result adjustment.

Mike Pall 16 年 前
コミット
a6565d21fa
1 ファイル変更1 行追加1 行削除
  1. 1 1
      src/lj_record.c

+ 1 - 1
src/lj_record.c

@@ -1539,7 +1539,7 @@ static void rec_ret(jit_State *J, BCReg rbase, int gotresults)
     if (cont == lj_cont_ra) {
     if (cont == lj_cont_ra) {
       /* Copy result to destination slot. */
       /* Copy result to destination slot. */
       BCReg dst = bc_a(*J->pc);
       BCReg dst = bc_a(*J->pc);
-      J->base[dst] = res[0];
+      J->base[dst] = gotresults ? res[0] : TREF_NIL;
       if (dst > J->maxslot) J->maxslot = dst+1;
       if (dst > J->maxslot) J->maxslot = dst+1;
     } else if (cont == lj_cont_nop) {
     } else if (cont == lj_cont_nop) {
       /* Nothing to do here. */
       /* Nothing to do here. */