fixed list*-immutable
svn: r284
This commit is contained in:
parent
cddd4e4e66
commit
f2f6a71402
|
@ -770,7 +770,7 @@ list_p_prim (int argc, Scheme_Object *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
list_exec (int argc, Scheme_Object *argv[], int star)
|
list_exec (int argc, Scheme_Object *argv[], int star, int immut)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
Scheme_Object *l;
|
Scheme_Object *l;
|
||||||
|
@ -781,8 +781,14 @@ list_exec (int argc, Scheme_Object *argv[], int star)
|
||||||
} else
|
} else
|
||||||
l = scheme_null;
|
l = scheme_null;
|
||||||
|
|
||||||
for (i = argc ; i--; ) {
|
if (immut) {
|
||||||
l = scheme_make_pair(argv[i], l);
|
for (i = argc ; i--; ) {
|
||||||
|
l = scheme_make_immutable_pair(argv[i], l);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = argc ; i--; ) {
|
||||||
|
l = scheme_make_pair(argv[i], l);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return l;
|
return l;
|
||||||
|
@ -791,31 +797,25 @@ list_exec (int argc, Scheme_Object *argv[], int star)
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
list_prim (int argc, Scheme_Object *argv[])
|
list_prim (int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
return list_exec(argc, argv, 0);
|
return list_exec(argc, argv, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
list_immutable_prim (int argc, Scheme_Object *argv[])
|
list_immutable_prim (int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
Scheme_Object *l;
|
return list_exec(argc, argv, 0, 1);
|
||||||
l = list_exec(argc, argv, 0);
|
|
||||||
scheme_make_list_immutable(l);
|
|
||||||
return l;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
list_star_prim (int argc, Scheme_Object *argv[])
|
list_star_prim (int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
return list_exec(argc, argv, 1);
|
return list_exec(argc, argv, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
list_star_immutable_prim (int argc, Scheme_Object *argv[])
|
list_star_immutable_prim (int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
Scheme_Object *l;
|
return list_exec(argc, argv, 1, 1);
|
||||||
l = list_exec(argc, argv, 1);
|
|
||||||
scheme_make_list_immutable(l);
|
|
||||||
return l;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
|
|
Loading…
Reference in New Issue
Block a user