summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/lib.c b/lib.c
index 1a12e678..5de9f170 100644
--- a/lib.c
+++ b/lib.c
@@ -7494,8 +7494,7 @@ val copy_fun(val ofun)
val self = lit("copy-fun");
type_check(self, ofun, FUN);
{
- val nfun = make_obj();
- nfun->f = ofun->f;
+ val nfun = copy_obj(ofun);
if (nfun->f.env)
nfun->f.env = if3(nfun->f.functype == FVM,
@@ -9692,9 +9691,7 @@ val copy_cons(val cell)
case CONS:
case LCONS:
{
- val obj = make_obj();
- *obj = *cell;
- return obj;
+ return copy_obj(cell);
}
default:
type_mismatch(lit("copy-cons: ~s is not a cons"), cell, nao);
@@ -9708,11 +9705,7 @@ val copy_tree(val tree)
} else {
val car = copy_tree(tree->c.car);
val cdr = copy_tree(tree->c.cdr);
- val copy = make_obj();
- *copy = *tree;
- copy->c.car = car;
- copy->c.cdr = cdr;
- return copy;
+ return cons(car, cdr);
}
}