diff options
author | Ludovic Courtès <ludo@gnu.org> | 2009-01-18 16:53:01 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2009-02-03 00:02:50 +0100 |
commit | 04795a1cb259c20896fb2edb50c58086027281b0 (patch) | |
tree | 21d4d40a7a4148e1e2a8592f6cf5029b23fb4da5 /libguile/goops.c | |
parent | 202271f291971cf14175f5a1a193955f72d43d79 (diff) | |
download | guile-04795a1cb259c20896fb2edb50c58086027281b0.tar.gz |
GOOPS: Statically allocate the SMOB class array.
* libguile/goops.c (scm_smob_class): Statically allocate it.
(create_smob_classes): Don't malloc(3) `scm_smob_class'.
* libguile/goops.h (scm_smob_class): Update declaration.
* libguile/smob.c (scm_make_smob_type, scm_set_smob_apply): When
checking whether GOOPS is initialized, check whether the first element
of SCM_SMOB_CLASS is non-zero.
Diffstat (limited to 'libguile/goops.c')
-rw-r--r-- | libguile/goops.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/libguile/goops.c b/libguile/goops.c index 84bfc0275..17944418b 100644 --- a/libguile/goops.c +++ b/libguile/goops.c @@ -153,7 +153,7 @@ SCM scm_class_scm; SCM scm_class_int, scm_class_float, scm_class_double; SCM *scm_port_class = 0; -SCM *scm_smob_class = 0; +SCM scm_smob_class[SCM_I_MAX_SMOB_TYPE_COUNT]; SCM scm_no_applicable_method; @@ -2694,7 +2694,6 @@ create_smob_classes (void) { long i; - scm_smob_class = scm_malloc (SCM_I_MAX_SMOB_TYPE_COUNT * sizeof (SCM)); for (i = 0; i < SCM_I_MAX_SMOB_TYPE_COUNT; ++i) scm_smob_class[i] = 0; |