summaryrefslogtreecommitdiff
path: root/hash.c
diff options
context:
space:
mode:
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c23
1 files changed, 9 insertions, 14 deletions
diff --git a/hash.c b/hash.c
index d0c95720a8..88b060f11a 100644
--- a/hash.c
+++ b/hash.c
@@ -1826,17 +1826,17 @@ ruby_setenv(name, value)
}
if (!value) {
if (environ != origenviron) {
- char **envp = origenviron;
- while (*envp && *envp != environ[i]) envp++;
- if (!*envp)
- free(environ[i]);
+ char **envp = origenviron;
+ while (*envp && *envp != environ[i]) envp++;
+ if (!*envp)
+ free(environ[i]);
}
- while (environ[i]) {
- environ[i] = environ[i+1];
- i++;
+ while (environ[i]) {
+ environ[i] = environ[i+1];
+ i++;
+ }
+ return;
}
- return;
- }
if (!environ[i]) { /* does not exist yet */
REALLOC_N(environ, char*, i+2); /* just expand it a bit */
environ[i+1] = 0; /* make sure it's null terminated */
@@ -1878,11 +1878,6 @@ env_aset(obj, nm, val)
rb_raise(rb_eSecurityError, "can't change environment variable");
}
- if (NIL_P(val)) {
- env_delete(obj, nm);
- return Qnil;
- }
-
StringValue(nm);
StringValue(val);
name = RSTRING(nm)->ptr;