From d9bf9c572f461c282fa6e65833e98bc7d453a66f Mon Sep 17 00:00:00 2001 From: Koichi Sasada Date: Wed, 25 Dec 2019 14:10:35 +0900 Subject: take care of USE_LAZY_LOAD=1. 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. --- builtin.c | 2 +- compile.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/builtin.c b/builtin.c index 67b43c7f5c..6de77228d0 100644 --- a/builtin.c +++ b/builtin.c @@ -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 diff --git a/compile.c b/compile.c index 56b91bfb46..4343443da5 100644 --- a/compile.c +++ b/compile.c @@ -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 -- cgit v1.2.3