From 6324f2972026aa1d598312dcbfd03b883b5f0bc2 Mon Sep 17 00:00:00 2001 From: Vyacheslav Egorov Date: Fri, 15 Jan 2016 00:57:23 +0100 Subject: [PATCH] Always merge snapshots if no instructions were generated since the last one. Fixes issue 124. --- src/lj_snap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lj_snap.c b/src/lj_snap.c index 62515ed0..368bad33 100644 --- a/src/lj_snap.c +++ b/src/lj_snap.c @@ -145,8 +145,8 @@ void lj_snap_add(jit_State *J) MSize nsnap = J->cur.nsnap; MSize nsnapmap = J->cur.nsnapmap; /* Merge if no ins. inbetween or if requested and no guard inbetween. */ - if (J->mergesnap ? !irt_isguard(J->guardemit) : - (nsnap > 0 && J->cur.snap[nsnap-1].ref == J->cur.nins)) { + if ((nsnap > 0 && J->cur.snap[nsnap-1].ref == J->cur.nins) || + (J->mergesnap && !irt_isguard(J->guardemit))) { if (nsnap == 1) { /* But preserve snap #0 PC. */ emitir_raw(IRT(IR_NOP, IRT_NIL), 0, 0); goto nomerge;