1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

* Some simplification, basically a postscriptum to the previous patch.

This commit is contained in:
Dirk Herrmann 2001-04-19 15:20:27 +00:00
parent 726d810a75
commit 4daecfeecc
2 changed files with 13 additions and 9 deletions

View file

@ -426,16 +426,15 @@ SCM_DEFINE (scm_procedure_source, "procedure-source", 1, 0, 0,
switch (SCM_TYP7 (proc)) {
case scm_tcs_closures:
{
SCM src;
src = scm_source_property (SCM_CDR (SCM_CODE (proc)), scm_sym_copy);
if (! SCM_FALSEP (src))
return scm_cons2 (scm_sym_lambda, SCM_CLOSURE_FORMALS (proc), src);
src = SCM_CODE (proc);
SCM formals = SCM_CLOSURE_FORMALS (proc);
SCM src = scm_source_property (SCM_CDR (SCM_CODE (proc)), scm_sym_copy);
if (!SCM_FALSEP (src))
return scm_cons2 (scm_sym_lambda, formals, src);
return scm_cons (scm_sym_lambda,
scm_unmemocopy (src,
SCM_EXTEND_ENV (SCM_CAR (src),
SCM_EOL,
SCM_ENV (proc))));
scm_unmemocopy (SCM_CODE (proc),
SCM_EXTEND_ENV (formals,
SCM_EOL,
SCM_ENV (proc))));
}
case scm_tcs_subrs:
#ifdef CCLO