diff options
author | Marius Vollmer <mvo@zagadka.de> | 2004-05-06 16:43:14 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2004-05-06 16:43:14 +0000 |
commit | f5710d53b1a67d7b965701b4b34004b9db1a6813 (patch) | |
tree | e6e4e2a562a827adba4f3c374c1152016dd6b68c /libguile/macros.c | |
parent | 41a2f6fc0c62afeb09bd7fbae4e9eca794c26bbe (diff) | |
download | guile-f5710d53b1a67d7b965701b4b34004b9db1a6813.tar.gz |
Use SCM_SMOB_* instead of SCM_CELL_* as appropriate. Use
SCM_SMOB_FLAGS and SCM_SET_SMOB_FLAGS instead of accessing the
zeroth word directly. Use SCM_SMOB_PREDICATE as appropriate.
Diffstat (limited to 'libguile/macros.c')
-rw-r--r-- | libguile/macros.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/libguile/macros.c b/libguile/macros.c index 32282f19c..bc14784e7 100644 --- a/libguile/macros.c +++ b/libguile/macros.c @@ -77,6 +77,14 @@ macro_print (SCM macro, SCM port, scm_print_state *pstate) return 1; } +static SCM +makmac (SCM code, scm_t_bits flags) +{ + SCM z; + SCM_NEWSMOB (z, scm_tc16_macro, SCM_UNPACK (code)); + SCM_SET_SMOB_FLAGS (z, flags); + return z; +} /* Return a mmacro that is known to be one of guile's built in macros. */ SCM @@ -84,7 +92,7 @@ scm_i_makbimacro (SCM code) #define FUNC_NAME "scm_i_makbimacro" { SCM_VALIDATE_PROC (1, code); - SCM_RETURN_NEWSMOB (scm_tc16_macro | (3L << 16), SCM_UNPACK (code)); + return makmac (code, 3); } #undef FUNC_NAME @@ -102,7 +110,7 @@ SCM_DEFINE (scm_makmmacro, "procedure->memoizing-macro", 1, 0, 0, #define FUNC_NAME s_scm_makmmacro { SCM_VALIDATE_PROC (1, code); - SCM_RETURN_NEWSMOB (scm_tc16_macro | (2L << 16), SCM_UNPACK (code)); + return makmac (code, 2); } #undef FUNC_NAME @@ -116,7 +124,7 @@ SCM_DEFINE (scm_makacro, "procedure->syntax", 1, 0, 0, #define FUNC_NAME s_scm_makacro { SCM_VALIDATE_PROC (1, code); - SCM_RETURN_NEWSMOB (scm_tc16_macro, SCM_UNPACK (code)); + return makmac (code, 0); } #undef FUNC_NAME @@ -144,7 +152,7 @@ SCM_DEFINE (scm_makmacro, "procedure->macro", 1, 0, 0, " or r5rs macros instead."); SCM_VALIDATE_PROC (1, code); - SCM_RETURN_NEWSMOB (scm_tc16_macro | (1L << 16), SCM_UNPACK (code)); + return makmac (code, 1); } #undef FUNC_NAME @@ -157,7 +165,7 @@ SCM_DEFINE (scm_macro_p, "macro?", 1, 0, 0, "syntax transformer.") #define FUNC_NAME s_scm_macro_p { - return SCM_BOOL (SCM_TYP16_PREDICATE (scm_tc16_macro, obj)); + return SCM_BOOL (SCM_SMOB_PREDICATE (scm_tc16_macro, obj)); } #undef FUNC_NAME @@ -178,7 +186,7 @@ SCM_DEFINE (scm_macro_type, "macro-type", 1, 0, 0, "returned.") #define FUNC_NAME s_scm_macro_type { - if (!SCM_TYP16_PREDICATE (scm_tc16_macro, m)) + if (!SCM_SMOB_PREDICATE (scm_tc16_macro, m)) return SCM_BOOL_F; switch (SCM_MACRO_TYPE (m)) { |