From d9b518874df3f202f762e82d1950d79caf55e4c0 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Sun, 7 Aug 2011 21:53:43 +0200 Subject: [PATCH] FFI: Limit snapshot optimization for cdata comparisons. --- src/lj_crecord.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lj_crecord.c b/src/lj_crecord.c index 180f255c..8d2248a4 100644 --- a/src/lj_crecord.c +++ b/src/lj_crecord.c @@ -1003,7 +1003,8 @@ void LJ_FASTCALL recff_cdata_arith(jit_State *J, RecordFFData *rd) (tr = crec_arith_ptr(J, sp, s, (MMS)rd->data))) { J->base[0] = tr; /* Fixup cdata comparisons, too. Avoids some cdata escapes. */ - if (J->postproc == LJ_POST_FIXGUARD && frame_iscont(J->L->base-1)) { + if (J->postproc == LJ_POST_FIXGUARD && frame_iscont(J->L->base-1) && + !irt_isguard(J->guardemit)) { const BCIns *pc = frame_contpc(J->L->base-1) - 1; if (bc_op(*pc) <= BC_ISNEP) { setframe_pc(&J2G(J)->tmptv, pc);