summaryrefslogtreecommitdiff
path: root/libguile/macros.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/macros.c
parent8ac40ce8871ccfa5e8c0a4fe3a1d55dfb69f839c (diff)
downloadguile-23a621512f6a034a8624f589a3862dbddcec6b9d.tar.gz
Greg's smob patch
Diffstat (limited to 'libguile/macros.c')
-rw-r--r--libguile/macros.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/libguile/macros.c b/libguile/macros.c
index 467524df7..c7b9af06b 100644
--- a/libguile/macros.c
+++ b/libguile/macros.c
@@ -47,21 +47,15 @@
long scm_tc16_macro;
-static const scm_smobfuns macrosmob = {scm_markcdr, scm_free0};
-
SCM_PROC(s_makacro, "procedure->syntax", 1, 0, 0, scm_makacro);
SCM
scm_makacro (code)
SCM code;
{
- register SCM z;
SCM_ASSERT (SCM_NFALSEP (scm_procedure_p (code)),
code, SCM_ARG1, s_makacro);
- SCM_NEWCELL (z);
- SCM_SETCDR (z, code);
- SCM_SETCAR (z, scm_tc16_macro);
- return z;
+ SCM_RETURN_NEWSMOB (scm_tc16_macro, code);
}
@@ -71,13 +65,9 @@ SCM
scm_makmacro (code)
SCM code;
{
- register SCM z;
SCM_ASSERT (SCM_NFALSEP (scm_procedure_p (code)),
code, SCM_ARG1, s_makmacro);
- SCM_NEWCELL (z);
- SCM_SETCDR (z, code);
- SCM_SETCAR (z, scm_tc16_macro | (1L << 16));
- return z;
+ SCM_RETURN_NEWSMOB (scm_tc16_macro | (1L << 16), code);
}
@@ -87,13 +77,9 @@ SCM
scm_makmmacro (code)
SCM code;
{
- register SCM z;
SCM_ASSERT (SCM_NFALSEP (scm_procedure_p (code)),
code, SCM_ARG1, s_makmmacro);
- SCM_NEWCELL (z);
- SCM_SETCDR (z, code);
- SCM_SETCAR (z, scm_tc16_macro | (2L << 16));
- return z;
+ SCM_RETURN_NEWSMOB (scm_tc16_macro | (2L << 16), code);
}
@@ -179,6 +165,7 @@ scm_make_synt (name, macroizer, fcn)
void
scm_init_macros ()
{
- scm_tc16_macro = scm_newsmob (&macrosmob);
+ scm_tc16_macro = scm_make_smob_type_mfpe ("macro", 0,
+ scm_markcdr, NULL, NULL, NULL);
#include "macros.x"
}