summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>1999-03-14 16:51:55 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>1999-03-14 16:51:55 +0000
commitd7ec6b9f78683e21e9f84d40bea206918845c947 (patch)
treee689e1b21f29d451e81dab3e08639d49ffd7a084
parent0e76bf6680a65debaf44c771f19ebe717c44fa4b (diff)
downloadguile-d7ec6b9f78683e21e9f84d40bea206918845c947.tar.gz
* smob.c (scm_newsmob): Also create a wrapper class if
scm_smob_class has been initialized.
-rw-r--r--libguile/smob.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libguile/smob.c b/libguile/smob.c
index 0e54b504c..2f40cfc65 100644
--- a/libguile/smob.c
+++ b/libguile/smob.c
@@ -45,6 +45,8 @@
#include "smob.h"
+#include "objects.h"
+
#ifdef HAVE_MALLOC_H
#include <malloc.h>
#endif
@@ -81,6 +83,10 @@ scm_newsmob (smob)
SCM_ALLOW_INTS;
if (!tmp)
smoberr:scm_wta (SCM_MAKINUM ((long) scm_numsmob), (char *) SCM_NALLOC, "newsmob");
+ /* Make a class object if Goops is present. */
+ if (scm_smob_class)
+ scm_smob_class[scm_numsmob - 1]
+ = scm_make_extended_class (SCM_SMOBNAME (scm_numsmob - 1));
return scm_tc7_smob + (scm_numsmob - 1) * 256;
}