in the marking root phase, we only marked the root context, but leaving
the current context unmarked. when we execute a fiber, the current
context would be changed and trigger this issue.
This commit is contained in:
fleuria
2013-08-07 19:42:56 +08:00
parent 7d82b935db
commit 22ac62a4f1
+4
View File
@@ -677,6 +677,10 @@ root_scan_phase(mrb_state *mrb)
mrb_gc_mark(mrb, (struct RBasic*)mrb->exc);
mark_context(mrb, mrb->root_c);
if (mrb->root_c != mrb->c) {
mark_context(mrb, mrb->c);
}
/* mark irep pool */
if (mrb->irep) {
size_t len = mrb->irep_len;