diff options
author | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1999-07-07 09:44:01 +0000 |
---|---|---|
committer | Mikael Djurfeldt <djurfeldt@nada.kth.se> | 1999-07-07 09:44:01 +0000 |
commit | 23a621512f6a034a8624f589a3862dbddcec6b9d (patch) | |
tree | efb8b5a0f046402b74a5851fa1a902c40bc91561 /libguile/unif.c | |
parent | 8ac40ce8871ccfa5e8c0a4fe3a1d55dfb69f839c (diff) | |
download | guile-23a621512f6a034a8624f589a3862dbddcec6b9d.tar.gz |
Greg's smob patch
Diffstat (limited to 'libguile/unif.c')
-rw-r--r-- | libguile/unif.c | 16 |
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 */ |