diff --git a/ChangeLog b/ChangeLog index 9f78d73f36..af92ac5fec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,7 +6,7 @@ Tue Oct 19 22:43:12 2004 Dave Thomas Tue Oct 19 20:41:37 2004 Masaki Suketa - * ext/win32ole.c(ole_invoke): retrieve the result value when + * ext/win32ole.c(ole_invoke): retrieve the result value when retrying the IDispatch::invoke. Tue Oct 19 17:24:11 2004 Yukihiro Matsumoto diff --git a/eval.c b/eval.c index facb7438ff..9236df78e0 100644 --- a/eval.c +++ b/eval.c @@ -6682,7 +6682,7 @@ search_required(fname, featurep, path) char *ext, *ftptr; int type; - *featurep = fname; + *featurep = fname = rb_str_new4(fname); *path = 0; ext = strrchr(ftptr = RSTRING(fname)->ptr, '.'); if (ext && !strchr(ext, '/')) { @@ -6786,10 +6786,6 @@ rb_require_safe(fname, safe) /* partial state */ ftptr = ruby_strdup(RSTRING(feature)->ptr); st_insert(loading_tbl, (st_data_t)ftptr, (st_data_t)curr_thread); - if (feature == fname && !OBJ_FROZEN(feature)) { - feature = rb_str_dup(feature); - OBJ_FREEZE(feature); - } rb_load(path, 0); break;