diff options
Diffstat (limited to 'src/bootstrap/environment.c')
-rw-r--r-- | src/bootstrap/environment.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/bootstrap/environment.c b/src/bootstrap/environment.c index e111753..78f31fb 100644 --- a/src/bootstrap/environment.c +++ b/src/bootstrap/environment.c | |||
@@ -106,15 +106,15 @@ env_extend(Environment *parent, Environment *extra) { | |||
106 | for (size_t i = 0; i < extra->size; i++) { | 106 | for (size_t i = 0; i < extra->size; i++) { |
107 | EnvEntry entry = extra->buf[i]; | 107 | EnvEntry entry = extra->buf[i]; |
108 | Environment *tmp = env; | 108 | Environment *tmp = env; |
109 | ssize_t idx = -1; | 109 | bool found = false; |
110 | while (tmp != NULL) { | 110 | while (tmp != NULL) { |
111 | idx = env_index_current(tmp, entry.symbol); | 111 | if (env_index_current(tmp, entry.symbol) != -1) { |
112 | if (idx != -1) { | 112 | found = true; |
113 | break; | 113 | break; |
114 | } | 114 | } |
115 | tmp = tmp->parent; | 115 | tmp = tmp->parent; |
116 | } | 116 | } |
117 | if (idx == -1) { | 117 | if (!found) { |
118 | env_add_symbol(env, obj_duplicate(entry.symbol), obj_duplicate(entry.value)); | 118 | env_add_symbol(env, obj_duplicate(entry.symbol), obj_duplicate(entry.value)); |
119 | } | 119 | } |
120 | } | 120 | } |