@@ -674,6 +674,7 @@ class AbstractMetaClass : public AbstractMetaAttributes
674674 m_has_nonprivateconstructor(false ),
675675 m_functions_fixed(false ),
676676 m_has_public_destructor(true ),
677+ m_has_virtual_destructor(false ),
677678 m_force_shell_class(false ),
678679 m_has_hash_function(false ),
679680 m_has_equals_operator(false ),
@@ -709,6 +710,8 @@ class AbstractMetaClass : public AbstractMetaAttributes
709710 void setHasNonPrivateConstructor (bool on) { m_has_nonprivateconstructor = on; }
710711 bool hasPublicDestructor () const { return m_has_public_destructor; }
711712 void setHasPublicDestructor (bool on) { m_has_public_destructor = on; }
713+ bool hasVirtualDestructor () const ;
714+ void setHasVirtualDestructor (bool on) { m_has_virtual_destructor = on; }
712715
713716 QString destructorException () const { return m_destructor_exception; }
714717 void setDestructorException (const QString &exception) { m_destructor_exception = exception; }
@@ -749,6 +752,10 @@ class AbstractMetaClass : public AbstractMetaAttributes
749752 AbstractMetaClass *baseClass () const { return m_base_class; }
750753 void setBaseClass (AbstractMetaClass *base_class) { m_base_class = base_class; }
751754
755+ // this lists _all_ super classes of this class
756+ QList<AbstractMetaClass *> superClasses () const { return m_super_classes; }
757+ void addSuperClass (AbstractMetaClass *super_class) { m_super_classes.append (super_class); }
758+
752759 const AbstractMetaClass *enclosingClass () const { return m_enclosing_class; }
753760 void setEnclosingClass (AbstractMetaClass *cl) { m_enclosing_class = cl; }
754761
@@ -849,16 +856,18 @@ class AbstractMetaClass : public AbstractMetaAttributes
849856 uint m_has_nonprivateconstructor : 1 ;
850857 uint m_functions_fixed : 1 ;
851858 uint m_has_public_destructor : 1 ;
859+ uint m_has_virtual_destructor : 1 ;
852860 uint m_force_shell_class : 1 ;
853861 uint m_has_hash_function : 1 ;
854862 uint m_has_equals_operator : 1 ;
855863 uint m_has_clone_operator :1 ;
856864 uint m_is_type_alias : 1 ;
857- uint m_reserved : 19 ;
865+ uint m_reserved : 18 ;
858866 QString m_destructor_exception;
859867
860868 const AbstractMetaClass *m_enclosing_class;
861869 AbstractMetaClass *m_base_class;
870+ QList<AbstractMetaClass*> m_super_classes;
862871 const AbstractMetaClass *m_template_base_class;
863872 AbstractMetaFunctionList m_functions;
864873 AbstractMetaFieldList m_fields;
0 commit comments