diff options
author | Marius Vollmer <mvo@zagadka.de> | 2001-05-15 14:57:22 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2001-05-15 14:57:22 +0000 |
commit | 86d31dfe7d0754b863863f6544c75097ef68fe8c (patch) | |
tree | 0f78f9d3ace802b80422dcedea25098cf901d05a /libguile/gsubr.c | |
parent | 7c33806ae676601f902dbdc0f39c1f0828d68951 (diff) | |
download | guile-86d31dfe7d0754b863863f6544c75097ef68fe8c.tar.gz |
Merge from mvo-vcell-cleanup-1-branch.
Diffstat (limited to 'libguile/gsubr.c')
-rw-r--r-- | libguile/gsubr.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libguile/gsubr.c b/libguile/gsubr.c index 83c268479..3b7c08d55 100644 --- a/libguile/gsubr.c +++ b/libguile/gsubr.c @@ -77,7 +77,9 @@ scm_make_gsubr(const char *name,int req,int opt,int rst,SCM (*fcn)()) case SCM_GSUBR_MAKTYPE(2, 0, 1): return scm_make_subr(name, scm_tc7_lsubr_2, fcn); default: { - SCM symcell = scm_sysintern (name, SCM_UNDEFINED); + SCM sym = scm_str2symbol (name); + SCM var = scm_sym2var (sym, scm_current_module_lookup_closure (), + SCM_BOOL_T); SCM cclo = scm_makcclo (scm_f_gsubr_apply, 3L); if (SCM_GSUBR_MAX < req + opt + rst) { fputs("ERROR in scm_make_gsubr: too many args\n", stderr); @@ -85,10 +87,10 @@ scm_make_gsubr(const char *name,int req,int opt,int rst,SCM (*fcn)()) } SCM_SET_GSUBR_PROC (cclo, scm_make_subr_opt (name, scm_tc7_subr_0, fcn, 0)); SCM_SET_GSUBR_TYPE (cclo, SCM_MAKINUM (SCM_GSUBR_MAKTYPE (req, opt, rst))); - SCM_SETCDR (symcell, cclo); + SCM_VARIABLE_SET (var, cclo); #ifdef DEBUG_EXTENSIONS if (SCM_REC_PROCNAMES_P) - scm_set_procedure_property_x (cclo, scm_sym_name, SCM_CAR (symcell)); + scm_set_procedure_property_x (cclo, scm_sym_name, sym); #endif return cclo; } |