summaryrefslogtreecommitdiff
path: root/libguile/goops.c
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2009-01-18 16:53:01 +0100
committerLudovic Courtès <ludo@gnu.org>2009-01-18 16:53:01 +0100
commit474554694f5618be238054e736540f567a0e02a0 (patch)
treecb34656af70ce89e34c439fbff6f2433d6b15551 /libguile/goops.c
parentc891a40e9fc5f718bfaf6e70f8fd0b19311d14a6 (diff)
downloadguile-474554694f5618be238054e736540f567a0e02a0.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.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/libguile/goops.c b/libguile/goops.c
index e373a7ccc..61f81e6c5 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;
@@ -2697,7 +2697,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;