glib: in finalize-inheritance :after method, ensure that superclasses are finalized
[cl-gtk2.git] / glib / gobject.meta.lisp
index ad01dea..67c579e 100755 (executable)
@@ -72,6 +72,8 @@
     (at-init (object) (initialize-gobject-class-g-type object))))
 
 (defmethod finalize-inheritance :after ((class gobject-class))
+  (iter (for superclass in (class-direct-superclasses class))
+        (unless (class-finalized-p superclass) (finalize-inheritance superclass)))
   (setf (gobject-class-g-type-name class)
         (or (gobject-class-direct-g-type-name class)
             (let ((gobject-superclass (iter (for superclass in (class-direct-superclasses class))