Blob Blame History Raw
From c087402082daa56d2141208e404f8a38b7569a2b Mon Sep 17 00:00:00 2001
Message-Id: <c087402082daa56d2141208e404f8a38b7569a2b@dist-git>
From: Peter Krempa <pkrempa@redhat.com>
Date: Wed, 24 Aug 2016 16:11:02 -0400
Subject: [PATCH] qemu: cap: Refactor access to array in
 virQEMUCapsProbeQMPMachineTypes

https://bugzilla.redhat.com/show_bug.cgi?id=1097930
https://bugzilla.redhat.com/show_bug.cgi?id=1224341

Use a temporary pointer rather than always recalculating the index in a
very verbose way.

(cherry picked from commit e44cdaf80b3af528a7b9ab5b555cd09cd27b3f1e)
---
 src/qemu/qemu_capabilities.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index f6a42e7..49ad9df 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -2485,18 +2485,20 @@ virQEMUCapsProbeQMPMachineTypes(virQEMUCapsPtr qemuCaps,
         goto cleanup;
 
     for (i = 0; i < nmachines; i++) {
+        struct virQEMUCapsMachineType *mach;
         if (STREQ(machines[i]->name, "none"))
             continue;
-        qemuCaps->nmachineTypes++;
-        if (VIR_STRDUP(qemuCaps->machineTypes[qemuCaps->nmachineTypes -1].alias,
-                       machines[i]->alias) < 0 ||
-            VIR_STRDUP(qemuCaps->machineTypes[qemuCaps->nmachineTypes - 1].name,
-                       machines[i]->name) < 0)
+
+        mach = &(qemuCaps->machineTypes[qemuCaps->nmachineTypes++]);
+
+        if (VIR_STRDUP(mach->alias, machines[i]->alias) < 0 ||
+            VIR_STRDUP(mach->name, machines[i]->name) < 0)
             goto cleanup;
+
+        mach->maxCpus = machines[i]->maxCpus;
+
         if (machines[i]->isDefault)
             defIdx = qemuCaps->nmachineTypes - 1;
-        qemuCaps->machineTypes[qemuCaps->nmachineTypes - 1].maxCpus =
-            machines[i]->maxCpus;
     }
 
     if (defIdx)
-- 
2.10.0