summaryrefslogtreecommitdiff
path: root/libguile/mallocs.c
diff options
context:
space:
mode:
Diffstat (limited to 'libguile/mallocs.c')
-rw-r--r--libguile/mallocs.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/libguile/mallocs.c b/libguile/mallocs.c
index b8332a765..a832bdb1c 100644
--- a/libguile/mallocs.c
+++ b/libguile/mallocs.c
@@ -66,8 +66,6 @@ prinmalloc (exp, port, pstate)
int scm_tc16_malloc;
-static scm_smobfuns mallocsmob = {0, fmalloc, prinmalloc, 0};
-
@@ -75,11 +73,8 @@ SCM
scm_malloc_obj (n)
scm_sizet n;
{
- SCM answer;
SCM mem;
- SCM_NEWCELL (answer);
- SCM_DEFER_INTS;
mem = (n
? (SCM)malloc (n)
: 0);
@@ -88,10 +83,7 @@ scm_malloc_obj (n)
SCM_ALLOW_INTS;
return SCM_BOOL_F;
}
- SCM_SETCDR (answer, mem);
- SCM_SETCAR (answer, scm_tc16_malloc);
- SCM_ALLOW_INTS;
- return answer;
+ SCM_RETURN_NEWSMOB (scm_tc16_malloc, mem);
}
@@ -100,6 +92,6 @@ scm_malloc_obj (n)
void
scm_init_mallocs ()
{
- scm_tc16_malloc = scm_newsmob (&mallocsmob);
+ scm_tc16_malloc = scm_make_smob_type_mfpe ("malloc", 0,
+ NULL, fmalloc, prinmalloc, NULL);
}
-