aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lj_gc.c6
-rw-r--r--src/lj_trace.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/src/lj_gc.c b/src/lj_gc.c
index 5c665786..7012dbec 100644
--- a/src/lj_gc.c
+++ b/src/lj_gc.c
@@ -689,12 +689,14 @@ int LJ_FASTCALL lj_gc_step(lua_State *L)
689 } while ((int32_t)lim > 0); 689 } while ((int32_t)lim > 0);
690 if (g->gc.debt < GCSTEPSIZE) { 690 if (g->gc.debt < GCSTEPSIZE) {
691 g->gc.threshold = g->gc.total + GCSTEPSIZE; 691 g->gc.threshold = g->gc.total + GCSTEPSIZE;
692 g->vmstate = ostate;
693 return 1;
692 } else { 694 } else {
693 g->gc.debt -= GCSTEPSIZE; 695 g->gc.debt -= GCSTEPSIZE;
694 g->gc.threshold = g->gc.total; 696 g->gc.threshold = g->gc.total;
697 g->vmstate = ostate;
698 return 0;
695 } 699 }
696 g->vmstate = ostate;
697 return 0;
698} 700}
699 701
700/* Ditto, but fix the stack top first. */ 702/* Ditto, but fix the stack top first. */
diff --git a/src/lj_trace.c b/src/lj_trace.c
index c70fc247..add9da6d 100644
--- a/src/lj_trace.c
+++ b/src/lj_trace.c
@@ -778,7 +778,7 @@ int LJ_FASTCALL lj_trace_exit(jit_State *J, void *exptr)
778 setcframe_pc(cf, pc); 778 setcframe_pc(cf, pc);
779 if (G(L)->gc.state == GCSatomic || G(L)->gc.state == GCSfinalize) { 779 if (G(L)->gc.state == GCSatomic || G(L)->gc.state == GCSfinalize) {
780 if (!(G(L)->hookmask & HOOK_GC)) 780 if (!(G(L)->hookmask & HOOK_GC))
781 lj_gc_step(L); /* Exited because of GC: drive GC forward. */ 781 lj_gc_check(L); /* Exited because of GC: drive GC forward. */
782 } else { 782 } else {
783 trace_hotside(J, pc); 783 trace_hotside(J, pc);
784 } 784 }