[PATCH v3 3/7] migration: Refactor migrate_cap_add

Eric Blake posted 7 patches 4 years, 9 months ago
There is a newer version of this series
[PATCH v3 3/7] migration: Refactor migrate_cap_add
Posted by Eric Blake 4 years, 9 months ago
Instead of taking a list parameter and returning a new head at a
distance, just return the new item for the caller to insert into a
list via QAPI_LIST_PREPEND.  Update some variable names to avoid long
lines, and drop a useless comment.

Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
---
 migration/migration.c | 29 +++++++++++++----------------
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/migration/migration.c b/migration/migration.c
index e0dbde4091c9..bba6e5148138 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1654,29 +1654,27 @@ void migrate_set_state(int *state, int old_state, int new_state)
     }
 }

-static MigrationCapabilityStatusList *migrate_cap_add(
-    MigrationCapabilityStatusList *list,
-    MigrationCapability index,
-    bool state)
+static MigrationCapabilityStatus *migrate_cap_add(MigrationCapability index,
+                                                  bool state)
 {
-    MigrationCapabilityStatusList *cap;
+    MigrationCapabilityStatus *cap;

-    cap = g_new0(MigrationCapabilityStatusList, 1);
-    cap->value = g_new0(MigrationCapabilityStatus, 1);
-    cap->value->capability = index;
-    cap->value->state = state;
-    cap->next = list;
+    cap = g_new0(MigrationCapabilityStatus, 1);
+    cap->capability = index;
+    cap->state = state;

     return cap;
 }

 void migrate_set_block_enabled(bool value, Error **errp)
 {
-    MigrationCapabilityStatusList *cap;
+    MigrationCapabilityStatusList *caps = NULL;
+    MigrationCapabilityStatus *cap;

-    cap = migrate_cap_add(NULL, MIGRATION_CAPABILITY_BLOCK, value);
-    qmp_migrate_set_capabilities(cap, errp);
-    qapi_free_MigrationCapabilityStatusList(cap);
+    cap = migrate_cap_add(MIGRATION_CAPABILITY_BLOCK, value);
+    QAPI_LIST_PREPEND(caps, cap);
+    qmp_migrate_set_capabilities(caps, errp);
+    qapi_free_MigrationCapabilityStatusList(caps);
 }

 static void migrate_set_block_incremental(MigrationState *s, bool value)
@@ -3863,13 +3861,12 @@ static bool migration_object_check(MigrationState *ms, Error **errp)

     for (i = 0; i < MIGRATION_CAPABILITY__MAX; i++) {
         if (ms->enabled_capabilities[i]) {
-            head = migrate_cap_add(head, i, true);
+            QAPI_LIST_PREPEND(head, migrate_cap_add(i, true));
         }
     }

     ret = migrate_caps_check(cap_list, head, errp);

-    /* It works with head == NULL */
     qapi_free_MigrationCapabilityStatusList(head);

     return ret;
-- 
2.29.2


Re: [PATCH v3 3/7] migration: Refactor migrate_cap_add
Posted by Markus Armbruster 4 years, 8 months ago
Eric Blake <eblake@redhat.com> writes:

> Instead of taking a list parameter and returning a new head at a
> distance, just return the new item for the caller to insert into a
> list via QAPI_LIST_PREPEND.  Update some variable names to avoid long
> lines, and drop a useless comment.
>
> Signed-off-by: Eric Blake <eblake@redhat.com>
> Reviewed-by: Markus Armbruster <armbru@redhat.com>

Already in master as commit eaedde5255.