Removed unnecessary uses of class destructors.
authorLudovic Courtes <ludovic.courtes@laas.fr>
Tue, 30 May 2006 21:56:55 +0000 (21:56 +0000)
committerLudovic Courtès <ludo@gnu.org>
Wed, 10 Sep 2008 18:26:35 +0000 (20:26 +0200)
* 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

libguile/goops.c
libguile/objects.c

index 52ce76b..9b764c1 100644 (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);
     }
 
index 649d08f..c02741a 100644 (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"