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 /src | |
parent | 776c6935ed807fc3b1ee6cd89a0cf682ffb7e9de (diff) | |
parent | e5f4cb1ccb3bfef5d40a2329d6aa36c1ba74a709 (diff) | |
download | luajit-b20642cec9e5134338820efcae7070aeda8dcf4a.tar.gz luajit-b20642cec9e5134338820efcae7070aeda8dcf4a.tar.bz2 luajit-b20642cec9e5134338820efcae7070aeda8dcf4a.zip |
Merge branch 'master' into v2.1
Diffstat (limited to 'src')
-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. */ |