diff options
Diffstat (limited to 'libguile/debug.c')
-rw-r--r-- | libguile/debug.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/libguile/debug.c b/libguile/debug.c index f5c9f8c55..3345c6ba1 100644 --- a/libguile/debug.c +++ b/libguile/debug.c @@ -164,9 +164,6 @@ prinmemoized (obj, port, pstate) return 1; } -static scm_smobfuns memoizedsmob = -{scm_markcdr, scm_free0, prinmemoized, 0}; - SCM_PROC (s_memoized_p, "memoized?", 1, 0, 0, scm_memoized_p); SCM @@ -184,12 +181,8 @@ scm_make_memoized (exp, env) /* *fixme* Check that env is a valid environment. */ register SCM z, ans; SCM_ENTER_A_SECTION; - SCM_NEWCELL (z); - SCM_SETCDR (z, env); - SCM_SETCAR (z, exp); - SCM_NEWCELL (ans); - SCM_SETCDR (ans, z); - SCM_SETCAR (ans, scm_tc16_memoized); + SCM_NEWSMOB (z, exp, env); + SCM_NEWSMOB (ans, scm_tc16_memoized, z); SCM_EXIT_A_SECTION; return ans; } @@ -589,9 +582,6 @@ prindebugobj (obj, port, pstate) return 1; } -static scm_smobfuns debugobjsmob = -{0, scm_free0, prindebugobj, 0}; - SCM_PROC (s_debug_object_p, "debug-object?", 1, 0, 0, scm_debug_object_p); SCM @@ -638,8 +628,11 @@ scm_init_debug () { scm_init_opts (scm_debug_options, scm_debug_opts, SCM_N_DEBUG_OPTIONS); - scm_tc16_memoized = scm_newsmob (&memoizedsmob); - scm_tc16_debugobj = scm_newsmob (&debugobjsmob); + scm_tc16_memoized = scm_make_smob_type_mfpe ("memoized", 0, + scm_markcdr, NULL, prinmemoized, NULL); + + scm_tc16_debugobj = scm_make_smob_type_mfpe ("debug-object", 0, + NULL, NULL, prindebugobj, NULL); scm_i_procname = SCM_CAR (scm_sysintern ("procname", SCM_UNDEFINED)); scm_i_more = SCM_CAR (scm_sysintern ("...", SCM_UNDEFINED)); |