1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-10 05:50:26 +02:00

Removed unnecessary uses of class destructors.

* 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
This commit is contained in:
Ludovic Courtes 2006-05-30 21:56:55 +00:00 committed by Ludovic Courtès
parent 5e67dc27e3
commit 077644c8a4
2 changed files with 2 additions and 6 deletions

View file

@ -732,9 +732,8 @@ SCM_DEFINE (scm_sys_inherit_magic_x, "%inherit-magic!", 2, 0, 0,
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
@ -751,7 +750,6 @@ SCM_DEFINE (scm_sys_inherit_magic_x, "%inherit-magic!", 2, 0, 0,
{
/* 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);
@ -2790,7 +2788,6 @@ scm_make_class (SCM meta, char *s_name, SCM supers, size_t size,
}
else if (size > 0)
{
SCM_SET_CLASS_DESTRUCTOR (class, scm_struct_free_light);
SCM_SET_CLASS_INSTANCE_SIZE (class, size);
}

View file

@ -346,7 +346,6 @@ scm_init_objects ()
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"