diff options
Diffstat (limited to 'mjit_worker.c')
-rw-r--r-- | mjit_worker.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/mjit_worker.c b/mjit_worker.c index a9d0bf3313..160b8cfe99 100644 --- a/mjit_worker.c +++ b/mjit_worker.c @@ -1261,6 +1261,17 @@ mjit_capture_cc_entries(const struct rb_iseq_constant_body *compiled_iseq, const // Capture cc to cc_enties for (unsigned int i = 0; i < captured_iseq->ci_size; i++) { cc_entries[i] = captured_iseq->call_data[i].cc; + + // Adding assertions to debug GC problem. + // FIXME: remove these when we find it + const struct rb_callcache *cc = cc_entries[i]; + + if (cc && vm_cc_markable(cc)) { + assert(BUILTIN_TYPE(cc) != T_MOVED); + assert(BUILTIN_TYPE(vm_cc_cme(cc)) != T_MOVED); + assert(!rb_objspace_garbage_object_p(cc)); + assert(!rb_objspace_garbage_object_p(vm_cc_cme(cc))); + } } return cc_entries_index; |