mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-22 04:25:18 +00:00
util: Change return argument for virBitmapParseUnlimited
Rather than returning an int and a *bitmap pointer, just return and check a NULL bitmap pointer
This commit is contained in:
parent
0543db3a1a
commit
9f66e09bc5
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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");
|
||||
|
Loading…
x
Reference in New Issue
Block a user