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/macros.c | |
parent | 8ac40ce8871ccfa5e8c0a4fe3a1d55dfb69f839c (diff) | |
download | guile-23a621512f6a034a8624f589a3862dbddcec6b9d.tar.gz |
Greg's smob patch
Diffstat (limited to 'libguile/macros.c')
-rw-r--r-- | libguile/macros.c | 23 |
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 (¯osmob); + scm_tc16_macro = scm_make_smob_type_mfpe ("macro", 0, + scm_markcdr, NULL, NULL, NULL); #include "macros.x" } |