struct virSecretObjListGetHelperData {
virConnectPtr conn;
virSecretObjListACLFilter filter;
- int got;
- char **uuids;
int nuuids;
+ char **uuids;
+ int maxuuids;
bool error;
};
if (data->error)
return 0;
- if (data->nuuids >= 0 && data->got == data->nuuids)
+ if (data->maxuuids >= 0 && data->nuuids == data->maxuuids)
return 0;
virObjectLock(obj);
}
virUUIDFormat(def->uuid, uuidstr);
- data->uuids[data->got] = uuidstr;
+ data->uuids[data->nuuids] = uuidstr;
}
- data->got++;
+ data->nuuids++;
cleanup:
virObjectUnlock(obj);
virConnectPtr conn)
{
struct virSecretObjListGetHelperData data = {
- .conn = conn, .filter = filter, .got = 0,
- .uuids = NULL, .nuuids = -1, .error = false };
+ .conn = conn, .filter = filter, .nuuids = 0,
+ .uuids = NULL, .maxuuids = -1, .error = false };
virObjectLock(secrets);
virHashForEach(secrets->objs, virSecretObjListGetHelper, &data);
virObjectUnlock(secrets);
- return data.got;
+ return data.nuuids;
}
int
virSecretObjListGetUUIDs(virSecretObjListPtr secrets,
char **uuids,
- int nuuids,
+ int maxuuids,
virSecretObjListACLFilter filter,
virConnectPtr conn)
{
struct virSecretObjListGetHelperData data = {
- .conn = conn, .filter = filter, .got = 0,
- .uuids = uuids, .nuuids = nuuids, .error = false };
+ .conn = conn, .filter = filter, .nuuids = 0,
+ .uuids = uuids, .maxuuids = maxuuids, .error = false };
virObjectLock(secrets);
virHashForEach(secrets->objs, virSecretObjListGetHelper, &data);
if (data.error)
goto error;
- return data.got;
+ return data.nuuids;
error:
- while (data.got)
- VIR_FREE(data.uuids[--data.got]);
+ while (--data.nuuids)
+ VIR_FREE(data.uuids[data.nuuids]);
return -1;
}