From c72baaaa7531a3e3a3da82863465214e31e60f00 Mon Sep 17 00:00:00 2001 From: Mikael Djurfeldt Date: Tue, 20 Jun 2000 02:37:53 +0000 Subject: [PATCH] * smob.h: Changed comments for scm_make_smob_type and scm_make_smob_type_mfpe, warning that the latter might be deprecated in a future release. --- libguile/smob.h | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/libguile/smob.h b/libguile/smob.h index 30c9d0194..87839de3b 100644 --- a/libguile/smob.h +++ b/libguile/smob.h @@ -124,38 +124,44 @@ extern scm_sizet scm_free0 (SCM ptr); extern scm_sizet scm_smob_free (SCM obj); extern int scm_smob_print (SCM exp, SCM port, scm_print_state *pstate); -/* These next two functions are the supported way to create new SMOB types. - - scm_make_smob_type is useful if there are no special smob functions - and the defaults work for mark,free,print,equal_p, or you want to use - scm_set_smob_{mark,free,print,equalp}, below. - scm_make_smob_type_mfpe is ideal if you need to set one or more of - the special smob functions-- use NULL for when the default function - is fine -*/ +/* The following set of functions is the standard way to create new + * SMOB types. + * + * Create a type tag using `scm_make_smob_type', accept default values + * for mark, free, print and/or equalp functions, or set your own + * values using `scm_set_smob_xxx'. + */ extern long scm_make_smob_type (char *name, scm_sizet size); -extern long scm_make_smob_type_mfpe (char *name, scm_sizet size, - SCM (*mark) (SCM), - scm_sizet (*free) (SCM), - int (*print) (SCM, SCM, scm_print_state*), - SCM (*equalp) (SCM, SCM)); - extern void scm_set_smob_mark (long tc, SCM (*mark) (SCM)); extern void scm_set_smob_free (long tc, scm_sizet (*free) (SCM)); extern void scm_set_smob_print (long tc, int (*print) (SCM, SCM, scm_print_state*)); extern void scm_set_smob_equalp (long tc, SCM (*equalp) (SCM, SCM)); -/* convenience function for registering multiple handler fns */ + + +/* Functions for registering multiple handler functions simultaneously. + * + * (There is a discussion among the developers whether or not these + * should be deprecated in the future.) + */ + +extern long scm_make_smob_type_mfpe (char *name, scm_sizet size, + SCM (*mark) (SCM), + scm_sizet (*free) (SCM), + int (*print) (SCM, SCM, scm_print_state*), + SCM (*equalp) (SCM, SCM)); + extern void scm_set_smob_mfpe (long tc, SCM (*mark) (SCM), scm_sizet (*free) (SCM), int (*print) (SCM, SCM, scm_print_state*), SCM (*equalp) (SCM, SCM)); +/* Function for creating smobs */ extern SCM scm_make_smob (long tc); extern void scm_smob_prehistory (void);