From 6ac45e04ea817dcd6df3a749f523ed1b96ec0118 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 1 Jan 2018 19:56:11 -0800 Subject: Use rplaca and rplacd instead of set over car_l/cdr_l. This reduces the proliferation of car_l and cdr_l. With this change, nreverse should work on chains of objects that implement rplacd. * combi.c (comb_gen_fun_common, rcomb_gen_fun_common): Use rplaca. * eval.c (mappendv, mapdov): Likewise * hash.c (hash_equal_op): Likewise. * lib.c (nreverse, acons_new, aconsql_new, sort_list): Use rplaca and rplacd. * match.c (dest_set, v_gather, v_collect, v_flatten, v_cat, v_output, v_filter): Likewise * parser.c (ensure_parser): Use sys_rplacd. * unwind.c (uw_register_subtype): Use rplacd. --- parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'parser.c') diff --git a/parser.c b/parser.c index 4aa9fdeb..4f4bcdae 100644 --- a/parser.c +++ b/parser.c @@ -173,7 +173,7 @@ static val ensure_parser(val stream) val pars = cdr(cell); if (pars) return pars; - return set(cdr_l(cell), parser(stream, one)); + return sys_rplacd(cell, parser(stream, one)); } static void pushback_token(parser_t *p, struct yy_token *tok) -- cgit v1.2.3