1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 21:40:33 +02:00

* 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.
This commit is contained in:
Mikael Djurfeldt 2000-06-20 02:37:53 +00:00
parent 33d0abd7e1
commit c72baaaa75

View file

@ -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);