]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: Clean up virDomainNumaDefNodeDistanceParseXML
authorJohn Ferlan <jferlan@redhat.com>
Tue, 21 Nov 2017 23:13:43 +0000 (18:13 -0500)
committerJohn Ferlan <jferlan@redhat.com>
Fri, 1 Dec 2017 11:28:24 +0000 (06:28 -0500)
Clean up the style a bit w/r/t to not using a unary operator on an
integer value that could be zero - compare vs. zero instead.

Set the def->mem_nodes[*].distances to rdist or ldist inside the
if condition - no need to set outside since the value being set
to is what was fetched.

During cleanup, be sure to initialize the ndistances on error and
use the < 0 comparison not the unary one.

src/conf/numa_conf.c

index 8fc3b0a1963eaaaafc6581bcd3e0a779e292c2b8..3aae705a5d620f8904163eda80f31b34d1f84602 100644 (file)
@@ -714,7 +714,7 @@ virDomainNumaDefNodeDistanceParseXML(virDomainNumaPtr def,
     xmlNodePtr *nodes = NULL;
     size_t i, ndistances = def->nmem_nodes;
 
-    if (!ndistances)
+    if (ndistances == 0)
         return 0;
 
     /* check if NUMA distances definition is present */
@@ -805,11 +805,11 @@ virDomainNumaDefNodeDistanceParseXML(virDomainNumaPtr def,
             ldist[cur_cell].value = LOCAL_DISTANCE;
             ldist[cur_cell].cellid = cur_cell;
             def->mem_nodes[cur_cell].ndistances = ndistances;
+            def->mem_nodes[cur_cell].distances = ldist;
         }
 
         ldist[sibling_id].cellid = sibling_id;
         ldist[sibling_id].value = sibling_value;
-        def->mem_nodes[cur_cell].distances = ldist;
 
         /* Apply symmetry if none given */
         rdist = def->mem_nodes[sibling_id].distances;
@@ -820,20 +820,21 @@ virDomainNumaDefNodeDistanceParseXML(virDomainNumaPtr def,
             rdist[sibling_id].value = LOCAL_DISTANCE;
             rdist[sibling_id].cellid = sibling_id;
             def->mem_nodes[sibling_id].ndistances = ndistances;
+            def->mem_nodes[sibling_id].distances = rdist;
         }
 
         rdist[cur_cell].cellid = cur_cell;
         if (!rdist[cur_cell].value)
             rdist[cur_cell].value = sibling_value;
-        def->mem_nodes[sibling_id].distances = rdist;
     }
 
     ret = 0;
 
  cleanup:
-    if (ret) {
+    if (ret < 0) {
         for (i = 0; i < ndistances; i++)
             VIR_FREE(def->mem_nodes[i].distances);
+        def->mem_nodes[i].ndistances = 0;
     }
     VIR_FREE(nodes);
     VIR_FREE(tmp);