Duplicate libruby self path
When LOAD_RELATIVE, as `sopath` is truncated to the prefix path, make the duplicate before it. Also make `rb_libruby_selfpath` frozen and hidden.
This commit is contained in:
parent
591ee9d068
commit
f2423be49d
8
ruby.c
8
ruby.c
@ -629,7 +629,13 @@ ruby_init_loadpath(void)
|
||||
#if defined(LOAD_RELATIVE) || defined(__MACH__)
|
||||
VALUE libruby_path = runtime_libruby_path();
|
||||
# if defined(__MACH__)
|
||||
rb_libruby_selfpath = libruby_path;
|
||||
VALUE selfpath = libruby_path;
|
||||
# if defined(LOAD_RELATIVE)
|
||||
selfpath = rb_str_dup(selfpath);
|
||||
# endif
|
||||
rb_obj_hide(selfpath);
|
||||
OBJ_FREEZE_RAW(selfpath);
|
||||
rb_libruby_selfpath = selfpath;
|
||||
rb_gc_register_address(&rb_libruby_selfpath);
|
||||
# endif
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user