On USE_LAZY_LOAD=1, the iseq should be loaded. So rb_iseq_check()
is needed. Furthermore, now lazy loading with builtin_function_table
is not supported, so it should cancel lazy loading.
This commit is contained in:
Koichi Sasada 2019-12-25 14:10:35 +09:00
Родитель 81e377023c
Коммит d9bf9c572f
2 изменённых файлов: 6 добавлений и 2 удалений

Просмотреть файл

@ -51,7 +51,7 @@ rb_load_with_builtin_functions(const char *feature_name, const struct rb_builtin
vm->builtin_function_table = NULL;
// exec
rb_iseq_eval(iseq);
rb_iseq_eval(rb_iseq_check(iseq));
}
#endif

Просмотреть файл

@ -11499,7 +11499,11 @@ ibf_load_iseq(const struct ibf_load *load, const rb_iseq_t *index_iseq)
#if IBF_ISEQ_DEBUG
fprintf(stderr, "ibf_load_iseq: loading iseq=%p\n", (void *)iseq);
#endif
rb_ibf_load_iseq_complete(iseq);
rb_ibf_load_iseq_complete(iseq);
#else
if (GET_VM()->builtin_function_table) {
rb_ibf_load_iseq_complete(iseq);
}
#endif /* !USE_LAZY_LOAD */
#if IBF_ISEQ_DEBUG