]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Preserve snapshot #0 PC for root traces.
authorMike Pall <mike>
Mon, 14 May 2012 15:35:05 +0000 (17:35 +0200)
committerMike Pall <mike>
Mon, 14 May 2012 15:35:05 +0000 (17:35 +0200)
src/lj_snap.c

index ddf07b6a33907106b7938d8c61486a9475a4c352..bbe7dcaed17a8e6f931053fbad16966027a4bdee 100644 (file)
@@ -136,6 +136,11 @@ void lj_snap_add(jit_State *J)
   /* 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 == 1 && J->parent == 0) {
+      /* But preserve snap #0 PC for root traces. */
+      J->mergesnap = 0;
+      return;
+    }
     nsnapmap = J->cur.snap[--nsnap].mapofs;
   } else {
     lj_snap_grow_buf(J, nsnap+1);