mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 13:49:17 +02:00
Always push a new env cell on define unless the previous cell was undefined.
This commit is contained in:
parent
da845032e5
commit
7c333f43da
1 changed files with 2 additions and 3 deletions
5
eval.c
5
eval.c
|
@ -141,9 +141,8 @@ sexp sexp_env_cell_define (sexp ctx, sexp env, sexp key,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
for (ls=sexp_env_bindings(env); sexp_pairp(ls); ls=sexp_env_next_cell(ls))
|
for (ls=sexp_env_bindings(env); sexp_pairp(ls); ls=sexp_env_next_cell(ls))
|
||||||
if (sexp_car(ls) == key) {
|
if (sexp_car(ls) == key && sexp_cdr(ls) == SEXP_UNDEF) {
|
||||||
if (sexp_cdr(ls) == SEXP_UNDEF)
|
sexp_cdr(ls) = value;
|
||||||
sexp_cdr(ls) = value;
|
|
||||||
return ls;
|
return ls;
|
||||||
}
|
}
|
||||||
sexp_gc_preserve2(ctx, cell, ls);
|
sexp_gc_preserve2(ctx, cell, ls);
|
||||||
|
|
Loading…
Add table
Reference in a new issue