There're 2 changes:
 - For OBJECT_DECLARE_SIMPLE_TYPE:

   Since a clase may not only has virtual method, but also field, thus
   mention when class is not needed for either, then there is no need
   to have the class.

 - For OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES:

   And the words like OBJECT_DEFINE_SIMPLE_TYPE about when the type is
   declared by OBJECT_DECLARE_SIMPLE_TYPE, then user should consider
   to define the type via OBJECT_DEFINE_SIMPLE_TYPE or
   OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES.

Cc: Paolo Bonzini <pbonz...@redhat.com>
Cc: "Daniel P. Berrangé" <berra...@redhat.com>
Cc: Eduardo Habkost <edua...@habkost.net>
Signed-off-by: Zhao Liu <zhao1....@intel.com>
---
 include/qom/object.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/qom/object.h b/include/qom/object.h
index 1d5b03372429..14f84ae454d3 100644
--- a/include/qom/object.h
+++ b/include/qom/object.h
@@ -249,7 +249,7 @@ struct Object
  * declared.
  *
  * This macro should be used unless the class struct needs to have
- * virtual methods declared.
+ * virtual methods or fields declared.
  */
 #define OBJECT_DECLARE_SIMPLE_TYPE(InstanceType, MODULE_OBJ_NAME) \
     typedef struct InstanceType InstanceType; \
@@ -402,7 +402,8 @@ struct Object
  *
  * This is a variant of OBJECT_DEFINE_TYPE_EXTENDED, which is suitable for
  * the case of a non-abstract type, with interfaces, and with no requirement
- * for a class struct.
+ * for a class struct. If you declared your type with 
OBJECT_DECLARE_SIMPLE_TYPE
+ * then this is probably the right choice for defining it.
  */
 #define OBJECT_DEFINE_SIMPLE_TYPE_WITH_INTERFACES(ModuleObjName, \
                                                   module_obj_name, \
-- 
2.34.1


Reply via email to