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/variable.c | |
parent | 8ac40ce8871ccfa5e8c0a4fe3a1d55dfb69f839c (diff) | |
download | guile-23a621512f6a034a8624f589a3862dbddcec6b9d.tar.gz |
Greg's smob patch
Diffstat (limited to 'libguile/variable.c')
-rw-r--r-- | libguile/variable.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/libguile/variable.c b/libguile/variable.c index 17ecacf0b..6fe9df9cf 100644 --- a/libguile/variable.c +++ b/libguile/variable.c @@ -49,17 +49,6 @@ #include "variable.h" -static scm_sizet free_var SCM_P ((SCM obj)); - -static scm_sizet -free_var (obj) - SCM obj; -{ - return 0; -} - - - static int prin_var SCM_P ((SCM exp, SCM port, scm_print_state *pstate)); static int @@ -106,7 +95,6 @@ var_equal (var1, var2) } int scm_tc16_variable; -static scm_smobfuns variable_smob = {scm_markvar, free_var, prin_var, var_equal}; static SCM anonymous_variable_sym; @@ -118,13 +106,7 @@ static SCM make_vcell_variable (vcell) SCM vcell; { - SCM answer; - SCM_NEWCELL(answer); - SCM_REDEFER_INTS; - SCM_SETCAR (answer, scm_tc16_variable); - SCM_SETCDR (answer, vcell); - SCM_REALLOW_INTS; - return answer; + SCM_RETURN_NEWSMOB (scm_tc16_variable, vcell); } SCM_PROC(s_make_variable, "make-variable", 1, 1, 0, scm_make_variable); @@ -250,7 +232,8 @@ scm_variable_bound_p (var) void scm_init_variable () { - scm_tc16_variable = scm_newsmob (&variable_smob); + scm_tc16_variable = scm_make_smob_type_mfpe ("variable", 0, + scm_markvar, NULL, prin_var, var_equal); anonymous_variable_sym = SCM_CAR (scm_sysintern ("anonymous-variable", SCM_UNDEFINED)); #include "variable.x" } |