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/procs.c | |
parent | 7c33806ae676601f902dbdc0f39c1f0828d68951 (diff) | |
download | guile-86d31dfe7d0754b863863f6544c75097ef68fe8c.tar.gz |
Merge from mvo-vcell-cleanup-1-branch.
Diffstat (limited to 'libguile/procs.c')
-rw-r--r-- | libguile/procs.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/libguile/procs.c b/libguile/procs.c index e9ba44f08..65331edb8 100644 --- a/libguile/procs.c +++ b/libguile/procs.c @@ -73,7 +73,7 @@ SCM scm_make_subr_opt (const char *name, int type, SCM (*fcn) (), int set) { SCM symbol; - SCM symcell; + SCM var; register SCM z; int entry; @@ -89,17 +89,14 @@ scm_make_subr_opt (const char *name, int type, SCM (*fcn) (), int set) scm_subr_table_room = new_size; } + symbol = scm_str2symbol (name); + SCM_NEWCELL (z); if (set) - { - symcell = scm_sysintern (name, SCM_UNDEFINED); - symbol = SCM_CAR (symcell); - } + var = scm_sym2var (symbol, scm_current_module_lookup_closure (), + SCM_BOOL_T); else - { - symcell = SCM_BOOL_F; /* to avoid warning */ - symbol = scm_str2symbol (name); - } + var = SCM_BOOL_F; entry = scm_subr_table_size; scm_subr_table[entry].handle = z; @@ -112,7 +109,7 @@ scm_make_subr_opt (const char *name, int type, SCM (*fcn) (), int set) scm_subr_table_size++; if (set) - SCM_SETCDR (symcell, z); + SCM_VARIABLE_SET (var, z); return z; } |