qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 1/9] qom/user-creatable: add a few helper macros


From: Marc-André Lureau
Subject: [Qemu-devel] [PATCH 1/9] qom/user-creatable: add a few helper macros
Date: Wed, 12 Sep 2018 16:55:23 +0400

Improve a bit code readability.

Signed-off-by: Marc-André Lureau <address@hidden>
---
 include/qom/object_interfaces.h | 4 ++++
 qom/object.c                    | 4 ++--
 qom/object_interfaces.c         | 9 +++------
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/include/qom/object_interfaces.h b/include/qom/object_interfaces.h
index 4d513fb329..46b0861457 100644
--- a/include/qom/object_interfaces.h
+++ b/include/qom/object_interfaces.h
@@ -9,9 +9,13 @@
 #define USER_CREATABLE_CLASS(klass) \
      OBJECT_CLASS_CHECK(UserCreatableClass, (klass), \
                         TYPE_USER_CREATABLE)
+#define IS_USER_CREATABLE_CLASS(klass) \
+    object_class_dynamic_cast(OBJECT_CLASS(oc), TYPE_USER_CREATABLE)
 #define USER_CREATABLE_GET_CLASS(obj) \
      OBJECT_GET_CLASS(UserCreatableClass, (obj), \
                       TYPE_USER_CREATABLE)
+#define IS_USER_CREATABLE(obj) \
+    object_dynamic_cast(OBJECT(obj), TYPE_USER_CREATABLE)
 #define USER_CREATABLE(obj) \
      INTERFACE_CHECK(UserCreatable, (obj), \
                      TYPE_USER_CREATABLE)
diff --git a/qom/object.c b/qom/object.c
index 75d1d48944..0703e8e4ff 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -424,7 +424,7 @@ void object_initialize_childv(Object *parentobj, const char 
*propname,
         goto out;
     }
 
-    if (object_dynamic_cast(obj, TYPE_USER_CREATABLE)) {
+    if (IS_USER_CREATABLE(obj)) {
         user_creatable_complete(obj, &local_err);
         if (local_err) {
             object_unparent(obj);
@@ -605,7 +605,7 @@ Object *object_new_with_propv(const char *typename,
         goto error;
     }
 
-    if (object_dynamic_cast(obj, TYPE_USER_CREATABLE)) {
+    if (IS_USER_CREATABLE(obj)) {
         user_creatable_complete(obj, &local_err);
         if (local_err) {
             object_unparent(obj);
diff --git a/qom/object_interfaces.c b/qom/object_interfaces.c
index 72b97a8bed..e3084bc04a 100644
--- a/qom/object_interfaces.c
+++ b/qom/object_interfaces.c
@@ -10,18 +10,15 @@
 
 void user_creatable_complete(Object *obj, Error **errp)
 {
-
     UserCreatableClass *ucc;
-    UserCreatable *uc =
-        (UserCreatable *)object_dynamic_cast(obj, TYPE_USER_CREATABLE);
 
-    if (!uc) {
+    if (!IS_USER_CREATABLE(obj)) {
         return;
     }
 
-    ucc = USER_CREATABLE_GET_CLASS(uc);
+    ucc = USER_CREATABLE_GET_CLASS(obj);
     if (ucc->complete) {
-        ucc->complete(uc, errp);
+        ucc->complete(USER_CREATABLE(obj), errp);
     }
 }
 
-- 
2.19.0.rc1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]