diff options
| author | Mike Pall <mike> | 2015-10-24 18:03:55 +0200 |
|---|---|---|
| committer | Mike Pall <mike> | 2015-10-24 18:03:55 +0200 |
| commit | b20642cec9e5134338820efcae7070aeda8dcf4a (patch) | |
| tree | 6b1daeec249d6ae85cd86596e0f5262294544f87 | |
| parent | 776c6935ed807fc3b1ee6cd89a0cf682ffb7e9de (diff) | |
| parent | e5f4cb1ccb3bfef5d40a2329d6aa36c1ba74a709 (diff) | |
| download | luajit-b20642cec9e5134338820efcae7070aeda8dcf4a.tar.gz luajit-b20642cec9e5134338820efcae7070aeda8dcf4a.tar.bz2 luajit-b20642cec9e5134338820efcae7070aeda8dcf4a.zip | |
Merge branch 'master' into v2.1
| -rw-r--r-- | src/lj_ffrecord.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/lj_ffrecord.c b/src/lj_ffrecord.c index 6cc05a24..09db2454 100644 --- a/src/lj_ffrecord.c +++ b/src/lj_ffrecord.c | |||
| @@ -435,11 +435,12 @@ static void LJ_FASTCALL recff_ipairs_aux(jit_State *J, RecordFFData *rd) | |||
| 435 | 435 | ||
| 436 | static void LJ_FASTCALL recff_xpairs(jit_State *J, RecordFFData *rd) | 436 | static void LJ_FASTCALL recff_xpairs(jit_State *J, RecordFFData *rd) |
| 437 | { | 437 | { |
| 438 | if (!(LJ_52 && recff_metacall(J, rd, MM_ipairs))) { | 438 | TRef tr = J->base[0]; |
| 439 | TRef tab = J->base[0]; | 439 | if (!((LJ_52 || (LJ_HASFFI && tref_iscdata(tr))) && |
| 440 | if (tref_istab(tab)) { | 440 | recff_metacall(J, rd, MM_ipairs))) { |
| 441 | if (tref_istab(tr)) { | ||
| 441 | J->base[0] = lj_ir_kfunc(J, funcV(&J->fn->c.upvalue[0])); | 442 | J->base[0] = lj_ir_kfunc(J, funcV(&J->fn->c.upvalue[0])); |
| 442 | J->base[1] = tab; | 443 | J->base[1] = tr; |
| 443 | J->base[2] = rd->data ? lj_ir_kint(J, 0) : TREF_NIL; | 444 | J->base[2] = rd->data ? lj_ir_kint(J, 0) : TREF_NIL; |
| 444 | rd->nres = 3; | 445 | rd->nres = 3; |
| 445 | } /* else: Interpreter will throw. */ | 446 | } /* else: Interpreter will throw. */ |
