Replace expanded load path only when modified

This commit is contained in:
Nobuyoshi Nakada 2021-09-28 23:25:51 +09:00
parent b6534691a1
commit 409dbc951b
Notes: git 2021-10-01 20:29:13 +09:00

6
ruby.c
View File

@ -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) {