#define scm_done_free(x)
#endif
-#if GUILE_MINOR_VERSION < 7
-#define scm_gc_unregister_collectable_memory(a,b,c) scm_done_free(b)
-#define scm_gc_register_collectable_memory(a,b,c) scm_done_malloc(b)
-
#ifndef SMOB_FREE_RETURN_VAL
#define SMOB_FREE_RETURN_VAL(CL) 0
#endif
+
+#if GUILE_MINOR_VERSION < 7
+#define scm_gc_unregister_collectable_memory(a,b,c) scm_done_free(b)
+#define scm_gc_register_collectable_memory(a,b,c) scm_done_malloc(b)
#endif
#include "direction.hh"
#endif
+
#define IMPLEMENT_SIMPLE_SMOBS(CL) \
scm_t_bits CL::smob_tag_; \
SCM \
CL * s = (CL*) SCM_CDR (ses); \
delete s; \
scm_gc_unregister_collectable_memory (s, sizeof (CL), #CL " smob"); \
- return 0;\
+ return SMOB_FREE_RETURN_VAL(CL);\
}\
ADD_SCM_INIT_FUNC (CL, CL::init_smobs)