summaryrefslogtreecommitdiff
path: root/libguile/procs.c
diff options
context:
space:
mode:
authorDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-12-22 16:46:17 +0000
committerDirk Herrmann <dirk@dirk-herrmanns-seiten.de>2000-12-22 16:46:17 +0000
commitc9c01b11259a4b7cd8e5143241ce12f57282976a (patch)
treebcde29f168f0383adea48e78bdd439acb172b4eb /libguile/procs.c
parent2e9c835db9fc83de45f32074104b16c45cdb93c4 (diff)
downloadguile-c9c01b11259a4b7cd8e5143241ce12f57282976a.tar.gz
* Removed unused member "documentation" from struct scm_subr_entry.
* Eliminate use of scm_intern0/scm_sysintern0 in procs.c.
Diffstat (limited to 'libguile/procs.c')
-rw-r--r--libguile/procs.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/libguile/procs.c b/libguile/procs.c
index 787098bf2..d1279a21a 100644
--- a/libguile/procs.c
+++ b/libguile/procs.c
@@ -70,6 +70,7 @@ int scm_subr_table_room = 750;
SCM
scm_make_subr_opt (const char *name, int type, SCM (*fcn) (), int set)
{
+ SCM symbol;
SCM symcell;
register SCM z;
int entry;
@@ -87,14 +88,21 @@ scm_make_subr_opt (const char *name, int type, SCM (*fcn) (), int set)
}
SCM_NEWCELL (z);
- symcell = set ? scm_sysintern0 (name) : scm_intern0 (name);
+ if (set)
+ {
+ symcell = scm_sysintern (name, SCM_UNDEFINED);
+ symbol = SCM_CAR (symcell);
+ }
+ else
+ {
+ symbol = scm_str2symbol (name);
+ }
entry = scm_subr_table_size;
scm_subr_table[entry].handle = z;
- scm_subr_table[entry].name = SCM_CAR (symcell);
+ scm_subr_table[entry].name = symbol;
scm_subr_table[entry].generic = 0;
scm_subr_table[entry].properties = SCM_EOL;
- scm_subr_table[entry].documentation = SCM_BOOL_F;
SCM_SET_SUBRF (z, fcn);
SCM_SET_CELL_TYPE (z, (entry << 8) + type);
@@ -143,8 +151,6 @@ scm_mark_subr_table ()
scm_gc_mark (*scm_subr_table[i].generic);
if (SCM_NIMP (scm_subr_table[i].properties))
scm_gc_mark (scm_subr_table[i].properties);
- if (SCM_NIMP (scm_subr_table[i].documentation))
- scm_gc_mark (scm_subr_table[i].documentation);
}
}