diff options
author | Bad Diode <bd@badd10de.dev> | 2021-11-15 22:32:02 +0100 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2021-11-15 22:32:02 +0100 |
commit | 26f1b9c35d337c0814158077fdc8f56b817e0b14 (patch) | |
tree | e0b20f3e6e843a3df45400f713eae1242ce8db65 /src/parser.c | |
parent | df4d884edb9b3a29d498d6852d0e8e077d9350df (diff) | |
download | bdl-26f1b9c35d337c0814158077fdc8f56b817e0b14.tar.gz bdl-26f1b9c35d337c0814158077fdc8f56b817e0b14.zip |
Fix stack on procedure call return
Diffstat (limited to 'src/parser.c')
-rw-r--r-- | src/parser.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/parser.c b/src/parser.c index 64bd22d..0968ccd 100644 --- a/src/parser.c +++ b/src/parser.c | |||
@@ -456,7 +456,9 @@ symbol_in_env(Environment *env, Object *symbol) { | |||
456 | 456 | ||
457 | void | 457 | void |
458 | insert_local(Environment *env, Object *symbol, Object *value) { | 458 | insert_local(Environment *env, Object *symbol, Object *value) { |
459 | if (find_var_index(env->locals, symbol) != -1) { | 459 | ssize_t idx = find_var_index(env->locals, symbol); |
460 | if (idx != -1) { | ||
461 | env->local_values[idx] = value; | ||
460 | return; | 462 | return; |
461 | } | 463 | } |
462 | array_push(env->locals, symbol); | 464 | array_push(env->locals, symbol); |