summaryrefslogtreecommitdiffstats
path: root/combi.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2014-03-27 19:00:49 -0700
committerKaz Kylheku <kaz@kylheku.com>2014-03-27 19:00:49 -0700
commite44f8e16614283698f648186302ea9d8cadd3066 (patch)
tree66dc0797c7c5d84d798bbe9dfea0685e4b1fac43 /combi.c
parentb6133333a04b6d29c4e6aa45f6e8917cf29ddc99 (diff)
downloadtxr-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.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/combi.c b/combi.c
index 68664b5c..24061b2a 100644
--- a/combi.c
+++ b/combi.c
@@ -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;