aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoichi Sasada <ko1@atdot.net>2019-12-25 14:10:35 +0900
committerKoichi Sasada <ko1@atdot.net>2019-12-25 14:12:33 +0900
commitd9bf9c572f461c282fa6e65833e98bc7d453a66f (patch)
tree23279ca8875acf9c6f039e5971faf7292bfac8b7
parent81e377023c490998a3fec245ca2fb2b3c710c2c6 (diff)
downloadruby-d9bf9c572f461c282fa6e65833e98bc7d453a66f.tar.gz
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.
-rw-r--r--builtin.c2
-rw-r--r--compile.c6
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