]> xenbits.xensource.com Git - libvirt.git/commitdiff
Format NULL bitmap as an empty string
authorJán Tomko <jtomko@redhat.com>
Thu, 5 Jun 2014 10:42:40 +0000 (12:42 +0200)
committerJán Tomko <jtomko@redhat.com>
Fri, 6 Jun 2014 12:35:18 +0000 (14:35 +0200)
This simplifies the usage in {libxl,qemu}DomainGetNumaParameters
and it's needed for consistent error reporting in virBitmapFormat.

Also remove the forgotten ATTRIBUTE_NONNULL marker.

src/libxl/libxl_driver.c
src/qemu/qemu_driver.c
src/util/virbitmap.c
src/util/virbitmap.h

index 9feacb12ba4e79bac4363d3ed55ef06f619781da..c62c55e7f15854054a3f00614573837056c875fe 100644 (file)
@@ -4002,8 +4002,7 @@ libxlDomainGetNumaParameters(virDomainPtr dom,
                 }
             }
 
-            nodeset = virBitmapFormat(nodes);
-            if (!nodeset && VIR_STRDUP(nodeset, "") < 0)
+            if (!(nodeset = virBitmapFormat(nodes)))
                 goto cleanup;
 
             if (virTypedParameterAssign(param, VIR_DOMAIN_NUMA_NODESET,
index 3a7622ae8834d3e70e0afdb9cd0901911703a9d1..578c2237b32d347ed17df2f2efbbea95af8f738c 100644 (file)
@@ -8914,7 +8914,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
         case 1: /* fill numa nodeset here */
             if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
                 nodeset = virBitmapFormat(persistentDef->numatune.memory.nodemask);
-                if (!nodeset && VIR_STRDUP(nodeset, "") < 0)
+                if (!nodeset)
                     goto cleanup;
             } else {
                 if (virCgroupGetCpusetMems(priv->cgroup, &nodeset) < 0)
index e44dce60d52ab636b9cdacab003075a5b1119d07..8c9983cc37452be2d6da8cd0366834556e3fe547 100644 (file)
@@ -218,6 +218,8 @@ char *virBitmapString(virBitmapPtr bitmap)
  *
  * See virBitmapParse for the format of @str.
  *
+ * If bitmap is NULL or it has no bits set, an empty string is returned.
+ *
  * Returns the string on success or NULL otherwise. Caller should call
  * VIR_FREE to free the string.
  */
@@ -227,11 +229,7 @@ char *virBitmapFormat(virBitmapPtr bitmap)
     bool first = true;
     int start, cur, prev;
 
-    if (!bitmap)
-        return NULL;
-
-    cur = virBitmapNextSetBit(bitmap, -1);
-    if (cur < 0) {
+    if (!bitmap || (cur = virBitmapNextSetBit(bitmap, -1)) < 0) {
         char *ret;
         ignore_value(VIR_STRDUP(ret, ""));
         return ret;
index b682523fbe512a38ea3a9f44af28fb0dececfa18..6573aa26becdcc530dc5f19856f91aaf6a99d1e8 100644 (file)
@@ -69,8 +69,7 @@ int virBitmapGetBit(virBitmapPtr bitmap, size_t b, bool *result)
 char *virBitmapString(virBitmapPtr bitmap)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_RETURN_CHECK;
 
-char *virBitmapFormat(virBitmapPtr bitmap)
-    ATTRIBUTE_NONNULL(1);
+char *virBitmapFormat(virBitmapPtr bitmap);
 
 int virBitmapParse(const char *str,
                    char sep,