diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2014-03-27 19:00:49 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2014-03-27 19:00:49 -0700 |
commit | e44f8e16614283698f648186302ea9d8cadd3066 (patch) | |
tree | 66dc0797c7c5d84d798bbe9dfea0685e4b1fac43 /combi.c | |
parent | b6133333a04b6d29c4e6aa45f6e8917cf29ddc99 (diff) | |
download | txr-e44f8e16614283698f648186302ea9d8cadd3066.tar.gz txr-e44f8e16614283698f648186302ea9d8cadd3066.tar.bz2 txr-e44f8e16614283698f648186302ea9d8cadd3066.zip |
More generational GC fixes. One GC fix.
* combi.c (perm_init_common, comb_gen_fun_common,
rcomb_gen_fun_common): Use set macro instead of plain assignment.
* hash.c (hash_grow, copy_hash, hash_update_1): Use set macro
instead of plain assignment.
* lib.c (nreverse, lazy_appendv_func, lazy_appendv,
vec_push, refset): Use set macro instead of plain assignment.
(make_package): Assign all fields of the newly created PKG
object before calling a function which can trigger GC.
* parser.y (rlset): Use set macro.
Diffstat (limited to 'combi.c')
-rw-r--r-- | combi.c | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -105,9 +105,9 @@ static val perm_init_common(val p, val k_null) } else { val state = vector(three, nil); val c = vector(k, zero); - *vecref_l(state, zero) = p; - *vecref_l(state, one) = k; - *vecref_l(state, two) = c; + set(*vecref_l(state, zero), p); + set(*vecref_l(state, one), k); + set(*vecref_l(state, two), c); *vecref_l(c, negone) = negone; return state; } @@ -355,7 +355,7 @@ static void comb_gen_fun_common(val state) val curr = first(iter); val curr_rest = rest(curr); if (curr_rest != prev && consp(curr_rest)) { - *car_l(iter) = curr_rest; + set(*car_l(iter), curr_rest); return; } else if (rest(iter)) { val next = second(iter); @@ -363,7 +363,7 @@ static void comb_gen_fun_common(val state) val next_rest_rest = rest(next_rest); prev = curr; if (next_rest != curr && consp(next_rest_rest)) - prev = *car_l(iter) = next_rest_rest; + prev = set(*car_l(iter), next_rest_rest); } } @@ -516,13 +516,13 @@ static void rcomb_gen_fun_common(val state) if (consp(curr_rest)) { val jter; for (jter = state; jter != next; jter = cdr(jter)) - *car_l(jter) = curr_rest; + set(*car_l(jter), curr_rest); return; } else if (next) { val next = second(iter); if (curr != next) - *car_l(iter) = rest(next); - } + set(*car_l(iter), rest(next)); + } } *car_l(state) = nil; |