]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: Change return argument for virBitmapParseUnlimited
authorJohn Ferlan <jferlan@redhat.com>
Wed, 22 Mar 2017 13:39:53 +0000 (09:39 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Wed, 22 Mar 2017 17:49:59 +0000 (13:49 -0400)
Rather than returning an int and a *bitmap pointer, just return and
check a NULL bitmap pointer

src/util/virbitmap.c
src/util/virbitmap.h
tests/testutils.c
tests/virbitmaptest.c

index 1b47d74cd73210df469281dbd8a303ec2537cb20..d263d73cad54a892e8cdaf0952964c0faff7dc0b 100644 (file)
@@ -545,7 +545,6 @@ virBitmapParse(const char *str,
 /**
  * virBitmapParseUnlimited:
  * @str: points to a string representing a human-readable bitmap
- * @bitmap: a bitmap created from @str
  *
  * This function is the counterpart of virBitmapFormat. This function creates
  * a bitmap, in which bits are set according to the content of @str.
@@ -556,20 +555,20 @@ virBitmapParse(const char *str,
  * to set, and ^N, which means to unset the bit, and N-M for ranges of bits
  * to set.
  *
- * Returns 0 on success, or -1 in case of error.
+ * Returns @bitmap on success, or NULL in case of error
  */
-int
-virBitmapParseUnlimited(const char *str,
-                        virBitmapPtr *bitmap)
+virBitmapPtr
+virBitmapParseUnlimited(const char *str)
 {
+    virBitmapPtr bitmap;
     bool neg = false;
     const char *cur = str;
     char *tmp;
     size_t i;
     int start, last;
 
-    if (!(*bitmap = virBitmapNewEmpty()))
-        return -1;
+    if (!(bitmap = virBitmapNewEmpty()))
+        return NULL;
 
     if (!str)
         goto error;
@@ -605,10 +604,10 @@ virBitmapParseUnlimited(const char *str,
 
         if (*cur == ',' || *cur == 0) {
             if (neg) {
-                if (virBitmapClearBitExpand(*bitmap, start) < 0)
+                if (virBitmapClearBitExpand(bitmap, start) < 0)
                     goto error;
             } else {
-                if (virBitmapSetBitExpand(*bitmap, start) < 0)
+                if (virBitmapSetBitExpand(bitmap, start) < 0)
                     goto error;
             }
         } else if (*cur == '-') {
@@ -626,7 +625,7 @@ virBitmapParseUnlimited(const char *str,
             cur = tmp;
 
             for (i = start; i <= last; i++) {
-                if (virBitmapSetBitExpand(*bitmap, i) < 0)
+                if (virBitmapSetBitExpand(bitmap, i) < 0)
                     goto error;
             }
 
@@ -644,14 +643,13 @@ virBitmapParseUnlimited(const char *str,
         }
     }
 
-    return 0;
+    return bitmap;
 
  error:
     virReportError(VIR_ERR_INVALID_ARG,
                    _("Failed to parse bitmap '%s'"), str);
-    virBitmapFree(*bitmap);
-    *bitmap = NULL;
-    return -1;
+    virBitmapFree(bitmap);
+    return NULL;
 }
 
 /**
index 58e0ee6d8ca71746dc1df25b54efc084cb3b16a1..3ba40aed65a1ecf6491bcd0680acb94f4b773cfe 100644 (file)
@@ -94,10 +94,9 @@ virBitmapParseSeparator(const char *str,
                         char terminator,
                         virBitmapPtr *bitmap,
                         size_t bitmapSize);
-int
-virBitmapParseUnlimited(const char *str,
-                        virBitmapPtr *bitmap)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
+virBitmapPtr
+virBitmapParseUnlimited(const char *str)
+    ATTRIBUTE_NONNULL(1);
 
 virBitmapPtr virBitmapNewCopy(virBitmapPtr src) ATTRIBUTE_NONNULL(1);
 
index a596a83a96043ff0d0a8f071c6139eedc73cfc1d..13eff9e105d8adbca8bc9da5a8bce7c9175631f3 100644 (file)
@@ -926,7 +926,7 @@ int virTestMain(int argc,
     }
 
     if ((testRange = getenv("VIR_TEST_RANGE")) != NULL) {
-        if (virBitmapParseUnlimited(testRange, &testBitmap) < 0) {
+        if (!(testBitmap = virBitmapParseUnlimited(testRange))) {
             fprintf(stderr, "Cannot parse range %s\n", testRange);
             return EXIT_FAILURE;
         }
index 3ee07ff971f7f68ddfcd09143a8116d8192063f6..e007efc28be45ab0942291f7daa657fe63cc7cb8 100644 (file)
@@ -650,7 +650,7 @@ test12(const void *opaque ATTRIBUTE_UNUSED)
     TEST_MAP(151, "128");
 
     virBitmapFree(map);
-    if (virBitmapParseUnlimited("34,1023", &map) < 0)
+    if (!(map = virBitmapParseUnlimited("34,1023")))
         goto cleanup;
 
     TEST_MAP(1024, "34,1023");