qemuParseKeywords(const char *str,
char ***retkeywords,
char ***retvalues,
+ int *retnkeywords,
int allowEmptyValue)
{
int keywordCount = 0;
*retkeywords = NULL;
*retvalues = NULL;
+ *retnkeywords = 0;
end = start + strlen(str);
while (start) {
*retkeywords = keywords;
*retvalues = values;
-
- return keywordCount;
+ *retnkeywords = keywordCount;
+ return 0;
error:
for (i = 0; i < keywordCount; i++) {
int unitid = -1;
int trans = VIR_DOMAIN_DISK_TRANS_DEFAULT;
- if ((nkeywords = qemuParseKeywords(val,
- &keywords,
- &values, 0)) < 0)
+ if (qemuParseKeywords(val,
+ &keywords,
+ &values,
+ &nkeywords,
+ 0) < 0)
return NULL;
if (VIR_ALLOC(def) < 0)
tmp = strchr(val, ',');
if (tmp) {
- if ((nkeywords = qemuParseKeywords(tmp+1,
- &keywords,
- &values, 0)) < 0)
+ if (qemuParseKeywords(tmp+1,
+ &keywords,
+ &values,
+ &nkeywords,
+ 0) < 0)
return NULL;
} else {
nkeywords = 0;
VIR_FREE(values);
if (STRPREFIX(nic, "nic,")) {
- if ((nkeywords = qemuParseKeywords(nic + strlen("nic,"),
- &keywords,
- &values, 0)) < 0) {
+ if (qemuParseKeywords(nic + strlen("nic,"),
+ &keywords,
+ &values,
+ &nkeywords,
+ 0) < 0) {
virDomainNetDefFree(def);
def = NULL;
goto cleanup;
char *end;
int ret;
- nkws = qemuParseKeywords(val, &kws, &vals, 1);
- if (nkws < 0)
+ if (qemuParseKeywords(val, &kws, &vals, &nkws, 1) < 0)
return -1;
for (i = 0; i < nkws; i++) {
if (!(ret = virJSONValueNewObject()))
goto error;
- nkeywords = qemuParseKeywords(str, &keywords, &values, 1);
-
- if (nkeywords < 0)
+ if (qemuParseKeywords(str, &keywords, &values, &nkeywords, 1) < 0)
goto error;
for (i = 0; i < nkeywords; i++) {