From 409dbc951b9875d27bd73748c88e15386473cffb Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 28 Sep 2021 23:25:51 +0900 Subject: [PATCH] Replace expanded load path only when modified --- ruby.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ruby.c b/ruby.c index 0d8c03ebf4..3358068bbb 100644 --- a/ruby.c +++ b/ruby.c @@ -1931,13 +1931,17 @@ process_options(int argc, char **argv, ruby_cmdline_options_t *opt) } { VALUE loaded_features = vm->loaded_features; + bool modified = false; for (long i = loaded_before_enc; i < RARRAY_LEN(loaded_features); ++i) { VALUE path = RARRAY_AREF(loaded_features, i); if (rb_enc_get(path) == IF_UTF8_PATH(uenc, lenc)) continue; path = copy_str(path, IF_UTF8_PATH(uenc, lenc), true); + modified = true; RARRAY_ASET(loaded_features, i, path); } - rb_get_expanded_load_path(); + if (modified) { + rb_ary_replace(vm->loaded_features_snapshot, loaded_features); + } } if (opt->features.mask & COMPILATION_FEATURES) {