diff options
author | Keisuke Nishida <kxn30@po.cwru.edu> | 2000-12-08 17:32:56 +0000 |
---|---|---|
committer | Keisuke Nishida <kxn30@po.cwru.edu> | 2000-12-08 17:32:56 +0000 |
commit | e841c3e0c006a4c80d873f93cb512f0ec71a5705 (patch) | |
tree | a464d2eb9ca225d04d034b40e8b029efce1ea323 /libguile/variable.c | |
parent | 38ae064c6e462bafc7e188b4586fb3e6eedec876 (diff) | |
download | guile-e841c3e0c006a4c80d873f93cb512f0ec71a5705.tar.gz |
Smob-related creanup.
Diffstat (limited to 'libguile/variable.c')
-rw-r--r-- | libguile/variable.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/libguile/variable.c b/libguile/variable.c index 304ea009b..163fb8ed2 100644 --- a/libguile/variable.c +++ b/libguile/variable.c @@ -54,9 +54,10 @@ #include "libguile/validate.h" #include "libguile/variable.h" +scm_bits_t scm_tc16_variable; static int -prin_var (SCM exp,SCM port,scm_print_state *pstate) +variable_print (SCM exp, SCM port, scm_print_state *pstate) { scm_puts ("#<variable ", port); scm_intprint(SCM_UNPACK (exp), 16, port); @@ -75,20 +76,11 @@ prin_var (SCM exp,SCM port,scm_print_state *pstate) return 1; } - -static SCM -scm_markvar (SCM ptr) -{ - return SCM_CDR (ptr); -} - static SCM -var_equal (SCM var1, SCM var2) +variable_equalp (SCM var1, SCM var2) { return scm_equal_p (SCM_CDR (var1), SCM_CDR (var2)); } - -int scm_tc16_variable; static SCM anonymous_variable_sym; @@ -232,8 +224,11 @@ SCM_DEFINE (scm_variable_bound_p, "variable-bound?", 1, 0, 0, void scm_init_variable () { - scm_tc16_variable = scm_make_smob_type_mfpe ("variable", 0, - scm_markvar, NULL, prin_var, var_equal); + scm_tc16_variable = scm_make_smob_type ("variable", 0); + scm_set_smob_mark (scm_tc16_variable, scm_markcdr); + scm_set_smob_print (scm_tc16_variable, variable_print); + scm_set_smob_equalp (scm_tc16_variable, variable_equalp); + anonymous_variable_sym = SCM_CAR (scm_sysintern ("anonymous-variable", SCM_UNDEFINED)); #ifndef SCM_MAGIC_SNARFER #include "libguile/variable.x" |