1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 19:50:24 +02:00

* eval.c (scm_nconc2last): Make sure that each element of lst

(which is a list of argument lists, except for the tail) is a
proper list, i.e., finite and terminated by '().
This commit is contained in:
Jim Blandy 1996-10-11 07:56:11 +00:00
parent 95b6af86e8
commit a9d61ae5c2

View file

@ -2369,12 +2369,12 @@ scm_nconc2last (lst)
SCM *lloc; SCM *lloc;
if (SCM_EOL == lst) if (SCM_EOL == lst)
return lst; return lst;
SCM_ASSERT (SCM_NIMP (lst) && SCM_CONSP (lst), lst, SCM_ARG1, s_nconc2last); SCM_ASSERT (scm_ilength(lst) >= 0, lst, SCM_WNA, s_nconc2last);
lloc = &lst; lloc = &lst;
while (SCM_NNULLP (SCM_CDR (*lloc))) while (SCM_NNULLP (SCM_CDR (*lloc)))
{ {
lloc = &SCM_CDR (*lloc); lloc = &SCM_CDR (*lloc);
SCM_ASSERT (SCM_NIMP (*lloc) && SCM_CONSP (*lloc), lst, SCM_ARG1, s_nconc2last); SCM_ASSERT (scm_ilength(SCM_CAR(*lloc)) >= 0, lst, SCM_ARGn, s_nconc2last);
} }
*lloc = SCM_CAR (*lloc); *lloc = SCM_CAR (*lloc);
return lst; return lst;