summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-04-18 21:30:53 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-04-18 23:19:58 +0900
commit0a986b81e18bc3b4ed2a62b3679806194a49c0f3 (patch)
tree772859992682f72915b74783e5134f70e0374113
parent97e8c72e56d3e0e8ce64d530fb133cdc26e326c8 (diff)
Env values removed by ENV.clear are not used
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/3041
-rw-r--r--hash.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/hash.c b/hash.c
index 36b595bfdd..e0f827b80f 100644
--- a/hash.c
+++ b/hash.c
@@ -5826,10 +5826,9 @@ rb_env_clear(void)
keys = env_keys(TRUE);
for (i=0; i<RARRAY_LEN(keys); i++) {
- VALUE val = rb_f_getenv(Qnil, RARRAY_AREF(keys, i));
- if (!NIL_P(val)) {
- env_delete(RARRAY_AREF(keys, i));
- }
+ VALUE key = RARRAY_AREF(keys, i);
+ const char *nam = RSTRING_PTR(key);
+ ruby_setenv(nam, 0);
}
RB_GC_GUARD(keys);
return envtbl;