* libguile/goops.c (scm_sys_inherit_magic_x): Don't invoke
`SCM_SET_CLASS_DESTRUCTOR' for legacy destructors that are no longer
needed (e.g., `scm_struct_free_entity ()', etc.).
* libguile/objects.c (scm_init_objects): Likewise.
git-archimport-id: lcourtes@laas.fr--2005-libre/guile-core--boehm-gc--1.9--patch-34
ls = SCM_CDR (ls);
}
flags &= SCM_CLASSF_INHERIT;
ls = SCM_CDR (ls);
}
flags &= SCM_CLASSF_INHERIT;
- if (flags & SCM_CLASSF_ENTITY)
- SCM_SET_CLASS_DESTRUCTOR (class, scm_struct_free_entity);
- else
+
+ if (! (flags & SCM_CLASSF_ENTITY))
{
long n = SCM_I_INUM (SCM_SLOT (class, scm_si_nfields));
#if 0
{
long n = SCM_I_INUM (SCM_SLOT (class, scm_si_nfields));
#if 0
{
/* NOTE: The following depends on scm_struct_i_size. */
flags |= SCM_STRUCTF_LIGHT + n * sizeof (SCM); /* use light representation */
{
/* NOTE: The following depends on scm_struct_i_size. */
flags |= SCM_STRUCTF_LIGHT + n * sizeof (SCM); /* use light representation */
- SCM_SET_CLASS_DESTRUCTOR (class, scm_struct_free_light);
}
}
SCM_SET_CLASS_FLAGS (class, flags);
}
}
SCM_SET_CLASS_FLAGS (class, flags);
- SCM_SET_CLASS_DESTRUCTOR (class, scm_struct_free_light);
SCM_SET_CLASS_INSTANCE_SIZE (class, size);
}
SCM_SET_CLASS_INSTANCE_SIZE (class, size);
}
scm_c_define ("<operator-class>", ot);
scm_metaclass_operator = ot;
SCM_SET_CLASS_FLAGS (et, SCM_CLASSF_OPERATOR | SCM_CLASSF_ENTITY);
scm_c_define ("<operator-class>", ot);
scm_metaclass_operator = ot;
SCM_SET_CLASS_FLAGS (et, SCM_CLASSF_OPERATOR | SCM_CLASSF_ENTITY);
- SCM_SET_CLASS_DESTRUCTOR (et, scm_struct_free_entity);
scm_c_define ("<entity>", et);
#include "libguile/objects.x"
scm_c_define ("<entity>", et);
#include "libguile/objects.x"