summaryrefslogtreecommitdiff
path: root/libguile/unif.c
diff options
context:
space:
mode:
authorMikael Djurfeldt <djurfeldt@nada.kth.se>1999-07-07 09:44:01 +0000
committerMikael Djurfeldt <djurfeldt@nada.kth.se>1999-07-07 09:44:01 +0000
commit23a621512f6a034a8624f589a3862dbddcec6b9d (patch)
treeefb8b5a0f046402b74a5851fa1a902c40bc91561 /libguile/unif.c
parent8ac40ce8871ccfa5e8c0a4fe3a1d55dfb69f839c (diff)
downloadguile-23a621512f6a034a8624f589a3862dbddcec6b9d.tar.gz
Greg's smob patch
Diffstat (limited to 'libguile/unif.c')
-rw-r--r--libguile/unif.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/libguile/unif.c b/libguile/unif.c
index 5889405a7..4619d7cf5 100644
--- a/libguile/unif.c
+++ b/libguile/unif.c
@@ -504,9 +504,9 @@ scm_make_ra (ndim)
SCM ra;
SCM_NEWCELL (ra);
SCM_DEFER_INTS;
- SCM_SETCDR (ra, scm_must_malloc ((long) (sizeof (scm_array) + ndim * sizeof (scm_array_dim)),
+ SCM_NEWSMOB(ra, ((long) ndim << 17) + scm_tc16_array,
+ scm_must_malloc ((long) (sizeof (scm_array) + ndim * sizeof (scm_array_dim)),
"array"));
- SCM_SETCAR (ra, ((long) ndim << 17) + scm_tc16_array);
SCM_ARRAY_V (ra) = scm_nullvect;
SCM_ALLOW_INTS;
return ra;
@@ -2595,18 +2595,18 @@ freera (ptr)
return sizeof (scm_array) + SCM_ARRAY_NDIM (ptr) * sizeof (scm_array_dim);
}
-static scm_smobfuns rasmob =
-{markra, freera, scm_raprin1, scm_array_equal_p};
-
-
/* This must be done after scm_init_scl() */
void
scm_init_unif ()
{
-#include "unif.x"
- scm_tc16_array = scm_newsmob (&rasmob);
+ scm_tc16_array = scm_make_smob_type_mfpe ("array", 0,
+ markra,
+ freera,
+ scm_raprin1,
+ scm_array_equal_p);
scm_add_feature ("array");
+#include "unif.x"
}
#else /* ARRAYS */