diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-04-18 20:58:35 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2020-04-18 23:19:58 +0900 |
commit | ec4e57cae0cc9fede7f7809f8e443cd811ebddb4 (patch) | |
tree | c841505807dc564a1433dba12a9ac688c72b4077 /hash.c | |
parent | 67e4d5e62340223c95e35afaee855f8c821a499d (diff) |
Hoisted out reset_by_modified_env
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3041
Diffstat (limited to 'hash.c')
-rw-r--r-- | hash.c | 22 |
1 files changed, 12 insertions, 10 deletions
@@ -4881,14 +4881,9 @@ env_name(volatile VALUE *s) static VALUE env_aset(VALUE nm, VALUE val); -static VALUE -env_delete(VALUE name) +static void +reset_by_modified_env(const char *nam) { - const char *nam, *val; - - nam = env_name(name); - val = getenv(nam); - /* * ENV['TZ'] = nil has a special meaning. * TZ is no longer considered up-to-date and ruby call tzset() as needed. @@ -4898,6 +4893,15 @@ env_delete(VALUE name) if (ENVMATCH(nam, TZ_ENV)) { ruby_reset_timezone(); } +} + +static VALUE +env_delete(VALUE name) +{ + const char *nam = env_name(name); + const char *val = getenv(nam); + + reset_by_modified_env(nam); if (val) { VALUE value = env_str_new2(val); @@ -5327,9 +5331,7 @@ env_aset(VALUE nm, VALUE val) if (ENVMATCH(name, PATH_ENV)) { RB_GC_GUARD(nm); } - else if (ENVMATCH(name, TZ_ENV)) { - ruby_reset_timezone(); - } + reset_by_modified_env(name); return val; } |