mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-08 12:41:29 +00:00
Introduce virTypedParamsClear public API
The function is just a renamed public version of former virTypedParameterArrayClear.
This commit is contained in:
parent
f52e9f1f4d
commit
de78bf604c
@ -987,8 +987,8 @@ remoteDeserializeTypedParameters(remote_typed_param *args_params_val,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0) {
|
if (rv < 0) {
|
||||||
virTypedParameterArrayClear(params, i);
|
virTypedParamsFree(params, i);
|
||||||
VIR_FREE(params);
|
params = NULL;
|
||||||
}
|
}
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
@ -1037,8 +1037,7 @@ remoteDispatchDomainGetSchedulerParameters(virNetServerPtr server ATTRIBUTE_UNUS
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
if (dom)
|
if (dom)
|
||||||
virDomainFree(dom);
|
virDomainFree(dom);
|
||||||
return rv;
|
return rv;
|
||||||
@ -1147,8 +1146,7 @@ remoteDispatchDomainGetSchedulerParametersFlags(virNetServerPtr server ATTRIBUTE
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
if (dom)
|
if (dom)
|
||||||
virDomainFree(dom);
|
virDomainFree(dom);
|
||||||
return rv;
|
return rv;
|
||||||
@ -1336,8 +1334,7 @@ success:
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
if (dom)
|
if (dom)
|
||||||
virDomainFree(dom);
|
virDomainFree(dom);
|
||||||
return rv;
|
return rv;
|
||||||
@ -1966,8 +1963,7 @@ success:
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
if (dom)
|
if (dom)
|
||||||
virDomainFree(dom);
|
virDomainFree(dom);
|
||||||
return rv;
|
return rv;
|
||||||
@ -2031,8 +2027,7 @@ success:
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
if (dom)
|
if (dom)
|
||||||
virDomainFree(dom);
|
virDomainFree(dom);
|
||||||
return rv;
|
return rv;
|
||||||
@ -2096,8 +2091,7 @@ success:
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
if (dom)
|
if (dom)
|
||||||
virDomainFree(dom);
|
virDomainFree(dom);
|
||||||
return rv;
|
return rv;
|
||||||
@ -2358,8 +2352,7 @@ success:
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
if (dom)
|
if (dom)
|
||||||
virDomainFree(dom);
|
virDomainFree(dom);
|
||||||
return rv;
|
return rv;
|
||||||
@ -3862,8 +3855,7 @@ success:
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
if (dom)
|
if (dom)
|
||||||
virDomainFree(dom);
|
virDomainFree(dom);
|
||||||
return rv;
|
return rv;
|
||||||
@ -3937,8 +3929,7 @@ success:
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, args->ncpus * args->nparams);
|
virTypedParamsFree(params, args->ncpus * args->nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
if (dom)
|
if (dom)
|
||||||
virDomainFree(dom);
|
virDomainFree(dom);
|
||||||
return rv;
|
return rv;
|
||||||
@ -4570,8 +4561,7 @@ success:
|
|||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virNetMessageSaveError(rerr);
|
virNetMessageSaveError(rerr);
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -607,6 +607,9 @@ virTypedParamsAddFromString(virTypedParameterPtr *params,
|
|||||||
int type,
|
int type,
|
||||||
const char *value);
|
const char *value);
|
||||||
void
|
void
|
||||||
|
virTypedParamsClear (virTypedParameterPtr params,
|
||||||
|
int nparams);
|
||||||
|
void
|
||||||
virTypedParamsFree (virTypedParameterPtr params,
|
virTypedParamsFree (virTypedParameterPtr params,
|
||||||
int nparams);
|
int nparams);
|
||||||
|
|
||||||
|
@ -537,6 +537,7 @@ skip_function = (
|
|||||||
"virTypedParamsAddString",
|
"virTypedParamsAddString",
|
||||||
"virTypedParamsAddUInt",
|
"virTypedParamsAddUInt",
|
||||||
"virTypedParamsAddULLong",
|
"virTypedParamsAddULLong",
|
||||||
|
"virTypedParamsClear",
|
||||||
"virTypedParamsFree",
|
"virTypedParamsFree",
|
||||||
"virTypedParamsGet",
|
"virTypedParamsGet",
|
||||||
"virTypedParamsGetBoolean",
|
"virTypedParamsGetBoolean",
|
||||||
|
@ -367,8 +367,7 @@ libvirt_virDomainBlockStatsFlags(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = getPyVirTypedParameter(params, nparams);
|
ret = getPyVirTypedParameter(params, nparams);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +455,7 @@ libvirt_virDomainGetCPUStats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
|
|||||||
|
|
||||||
start_cpu += queried_ncpus;
|
start_cpu += queried_ncpus;
|
||||||
ncpus -= queried_ncpus;
|
ncpus -= queried_ncpus;
|
||||||
virTypedParameterArrayClear(params, sumparams);
|
virTypedParamsClear(params, sumparams);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
LIBVIRT_BEGIN_ALLOW_THREADS;
|
LIBVIRT_BEGIN_ALLOW_THREADS;
|
||||||
@ -498,13 +497,11 @@ libvirt_virDomainGetCPUStats(PyObject *self ATTRIBUTE_UNUSED, PyObject *args)
|
|||||||
Py_DECREF(total);
|
Py_DECREF(total);
|
||||||
}
|
}
|
||||||
|
|
||||||
virTypedParameterArrayClear(params, sumparams);
|
virTypedParamsFree(params, sumparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
virTypedParameterArrayClear(params, sumparams);
|
virTypedParamsFree(params, sumparams);
|
||||||
VIR_FREE(params);
|
|
||||||
Py_DECREF(ret);
|
Py_DECREF(ret);
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
@ -668,8 +665,7 @@ libvirt_virDomainGetSchedulerParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = getPyVirTypedParameter(params, nparams);
|
ret = getPyVirTypedParameter(params, nparams);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -717,8 +713,7 @@ libvirt_virDomainGetSchedulerParametersFlags(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = getPyVirTypedParameter(params, nparams);
|
ret = getPyVirTypedParameter(params, nparams);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -791,8 +786,7 @@ libvirt_virDomainSetSchedulerParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = VIR_PY_INT_SUCCESS;
|
ret = VIR_PY_INT_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
VIR_FREE(new_params);
|
VIR_FREE(new_params);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -868,8 +862,7 @@ libvirt_virDomainSetSchedulerParametersFlags(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = VIR_PY_INT_SUCCESS;
|
ret = VIR_PY_INT_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
VIR_FREE(new_params);
|
VIR_FREE(new_params);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -943,8 +936,7 @@ libvirt_virDomainSetBlkioParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = VIR_PY_INT_SUCCESS;
|
ret = VIR_PY_INT_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
VIR_FREE(new_params);
|
VIR_FREE(new_params);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -991,8 +983,7 @@ libvirt_virDomainGetBlkioParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = getPyVirTypedParameter(params, nparams);
|
ret = getPyVirTypedParameter(params, nparams);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1065,8 +1056,7 @@ libvirt_virDomainSetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = VIR_PY_INT_SUCCESS;
|
ret = VIR_PY_INT_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
VIR_FREE(new_params);
|
VIR_FREE(new_params);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1113,8 +1103,7 @@ libvirt_virDomainGetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = getPyVirTypedParameter(params, nparams);
|
ret = getPyVirTypedParameter(params, nparams);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1187,8 +1176,7 @@ libvirt_virDomainSetNumaParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = VIR_PY_INT_SUCCESS;
|
ret = VIR_PY_INT_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
VIR_FREE(new_params);
|
VIR_FREE(new_params);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1235,8 +1223,7 @@ libvirt_virDomainGetNumaParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = getPyVirTypedParameter(params, nparams);
|
ret = getPyVirTypedParameter(params, nparams);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1310,8 +1297,7 @@ libvirt_virDomainSetInterfaceParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = VIR_PY_INT_SUCCESS;
|
ret = VIR_PY_INT_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
VIR_FREE(new_params);
|
VIR_FREE(new_params);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1359,8 +1345,7 @@ libvirt_virDomainGetInterfaceParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = getPyVirTypedParameter(params, nparams);
|
ret = getPyVirTypedParameter(params, nparams);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4305,8 +4290,7 @@ libvirt_virDomainSetBlockIoTune(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = VIR_PY_INT_SUCCESS;
|
ret = VIR_PY_INT_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
VIR_FREE(new_params);
|
VIR_FREE(new_params);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -4354,8 +4338,7 @@ libvirt_virDomainGetBlockIoTune(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = getPyVirTypedParameter(params, nparams);
|
ret = getPyVirTypedParameter(params, nparams);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6466,8 +6449,7 @@ libvirt_virNodeSetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = VIR_PY_INT_SUCCESS;
|
ret = VIR_PY_INT_SUCCESS;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
VIR_FREE(new_params);
|
VIR_FREE(new_params);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -6514,8 +6496,7 @@ libvirt_virNodeGetMemoryParameters(PyObject *self ATTRIBUTE_UNUSED,
|
|||||||
ret = getPyVirTypedParameter(params, nparams);
|
ret = getPyVirTypedParameter(params, nparams);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsFree(params, nparams);
|
||||||
VIR_FREE(params);
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1876,7 +1876,6 @@ virTimeStringThenRaw;
|
|||||||
|
|
||||||
|
|
||||||
# virtypedparam.h
|
# virtypedparam.h
|
||||||
virTypedParameterArrayClear;
|
|
||||||
virTypedParameterArrayValidate;
|
virTypedParameterArrayValidate;
|
||||||
virTypedParameterAssign;
|
virTypedParameterAssign;
|
||||||
virTypedParameterAssignFromStr;
|
virTypedParameterAssignFromStr;
|
||||||
|
@ -591,6 +591,7 @@ LIBVIRT_1.0.2 {
|
|||||||
virTypedParamsAddString;
|
virTypedParamsAddString;
|
||||||
virTypedParamsAddUInt;
|
virTypedParamsAddUInt;
|
||||||
virTypedParamsAddULLong;
|
virTypedParamsAddULLong;
|
||||||
|
virTypedParamsClear;
|
||||||
virTypedParamsFree;
|
virTypedParamsFree;
|
||||||
virTypedParamsGet;
|
virTypedParamsGet;
|
||||||
virTypedParamsGetBoolean;
|
virTypedParamsGetBoolean;
|
||||||
|
@ -1612,7 +1612,7 @@ remoteDeserializeTypedParameters(remote_typed_param *ret_params_val,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virTypedParameterArrayClear(params, i);
|
virTypedParamsClear(params, i);
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2754,7 +2754,7 @@ static int remoteDomainGetCPUStats(virDomainPtr domain,
|
|||||||
rv = ret.nparams;
|
rv = ret.nparams;
|
||||||
cleanup:
|
cleanup:
|
||||||
if (rv < 0)
|
if (rv < 0)
|
||||||
virTypedParameterArrayClear(params, nparams * ncpus);
|
virTypedParamsClear(params, nparams * ncpus);
|
||||||
|
|
||||||
xdr_free((xdrproc_t) xdr_remote_domain_get_cpu_stats_ret,
|
xdr_free((xdrproc_t) xdr_remote_domain_get_cpu_stats_ret,
|
||||||
(char *) &ret);
|
(char *) &ret);
|
||||||
|
@ -490,8 +490,7 @@ elsif ($opt_b) {
|
|||||||
" $2,\n" .
|
" $2,\n" .
|
||||||
" &n$1)) == NULL)\n" .
|
" &n$1)) == NULL)\n" .
|
||||||
" goto cleanup;\n");
|
" goto cleanup;\n");
|
||||||
push(@free_list, " virTypedParameterArrayClear($1, n$1);");
|
push(@free_list, " virTypedParamsFree($1, n$1);");
|
||||||
push(@free_list, " VIR_FREE($1);");
|
|
||||||
} elsif ($args_member =~ m/<\S+>;/ or $args_member =~ m/\[\S+\];/) {
|
} elsif ($args_member =~ m/<\S+>;/ or $args_member =~ m/\[\S+\];/) {
|
||||||
# just make all other array types fail
|
# just make all other array types fail
|
||||||
die "unhandled type for argument value: $args_member";
|
die "unhandled type for argument value: $args_member";
|
||||||
|
@ -41,20 +41,6 @@ VIR_ENUM_IMPL(virTypedParameter, VIR_TYPED_PARAM_LAST,
|
|||||||
"boolean",
|
"boolean",
|
||||||
"string")
|
"string")
|
||||||
|
|
||||||
void
|
|
||||||
virTypedParameterArrayClear(virTypedParameterPtr params, int nparams)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
if (!params)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (i = 0; i < nparams; i++) {
|
|
||||||
if (params[i].type == VIR_TYPED_PARAM_STRING)
|
|
||||||
VIR_FREE(params[i].value.s);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Validate that PARAMS contains only recognized parameter names with
|
/* Validate that PARAMS contains only recognized parameter names with
|
||||||
* correct types, and with no duplicates. Pass in as many name/type
|
* correct types, and with no duplicates. Pass in as many name/type
|
||||||
* pairs as appropriate, and pass NULL to end the list of accepted
|
* pairs as appropriate, and pass NULL to end the list of accepted
|
||||||
@ -897,7 +883,7 @@ error:
|
|||||||
*
|
*
|
||||||
* Adds new parameter called @name with char * type and sets its value to
|
* Adds new parameter called @name with char * type and sets its value to
|
||||||
* @value. The function creates its own copy of @value string, which needs to
|
* @value. The function creates its own copy of @value string, which needs to
|
||||||
* be freed using virTypedParamsFree. If @params array
|
* be freed using virTypedParamsFree or virTypedParamsClear. If @params array
|
||||||
* points to NULL or to a space that is not large enough to accommodate the
|
* points to NULL or to a space that is not large enough to accommodate the
|
||||||
* new parameter (@maxparams < @nparams + 1), the function allocates more
|
* new parameter (@maxparams < @nparams + 1), the function allocates more
|
||||||
* space for it and updates @maxparams. On success, @nparams is incremented
|
* space for it and updates @maxparams. On success, @nparams is incremented
|
||||||
@ -959,7 +945,7 @@ error:
|
|||||||
* Adds new parameter called @name with the requested @type and parses its
|
* Adds new parameter called @name with the requested @type and parses its
|
||||||
* value from the @value string. If the requested type is string, the function
|
* value from the @value string. If the requested type is string, the function
|
||||||
* creates its own copy of the @value string, which needs to be freed using
|
* creates its own copy of the @value string, which needs to be freed using
|
||||||
* virTypedParamsFree. If @params array points to NULL
|
* virTypedParamsFree or virTypedParamsClear. If @params array points to NULL
|
||||||
* or to a space that is not large enough to accommodate the new parameter
|
* or to a space that is not large enough to accommodate the new parameter
|
||||||
* (@maxparams < @nparams + 1), the function allocates more space for it and
|
* (@maxparams < @nparams + 1), the function allocates more space for it and
|
||||||
* updates @maxparams. On success, @nparams is incremented by one. The
|
* updates @maxparams. On success, @nparams is incremented by one. The
|
||||||
@ -1000,6 +986,32 @@ error:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* virTypedParamsClear:
|
||||||
|
* @params: the array of typed parameters
|
||||||
|
* @nparams: number of parameters in the @params array
|
||||||
|
*
|
||||||
|
* Frees all memory used by string parameters. The memory occupied by @params
|
||||||
|
* is not freed; use virTypedParamsFree if you want it to be freed too.
|
||||||
|
*
|
||||||
|
* Returns nothing.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
virTypedParamsClear(virTypedParameterPtr params,
|
||||||
|
int nparams)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (!params)
|
||||||
|
return;
|
||||||
|
|
||||||
|
for (i = 0; i < nparams; i++) {
|
||||||
|
if (params[i].type == VIR_TYPED_PARAM_STRING)
|
||||||
|
VIR_FREE(params[i].value.s);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* virTypedParamsFree:
|
* virTypedParamsFree:
|
||||||
* @params: the array of typed parameters
|
* @params: the array of typed parameters
|
||||||
@ -1015,6 +1027,6 @@ virTypedParamsFree(virTypedParameterPtr params,
|
|||||||
int nparams)
|
int nparams)
|
||||||
{
|
{
|
||||||
virResetLastError();
|
virResetLastError();
|
||||||
virTypedParameterArrayClear(params, nparams);
|
virTypedParamsClear(params, nparams);
|
||||||
VIR_FREE(params);
|
VIR_FREE(params);
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,6 @@
|
|||||||
|
|
||||||
# include "internal.h"
|
# include "internal.h"
|
||||||
|
|
||||||
void virTypedParameterArrayClear(virTypedParameterPtr params, int nparams);
|
|
||||||
|
|
||||||
int virTypedParameterArrayValidate(virTypedParameterPtr params, int nparams,
|
int virTypedParameterArrayValidate(virTypedParameterPtr params, int nparams,
|
||||||
/* const char *name, int type ... */ ...)
|
/* const char *name, int type ... */ ...)
|
||||||
ATTRIBUTE_SENTINEL ATTRIBUTE_RETURN_CHECK;
|
ATTRIBUTE_SENTINEL ATTRIBUTE_RETURN_CHECK;
|
||||||
|
@ -6182,7 +6182,7 @@ cmdCPUStats(vshControl *ctl, const vshCmd *cmd)
|
|||||||
}
|
}
|
||||||
cpu += ncpus;
|
cpu += ncpus;
|
||||||
show_count -= ncpus;
|
show_count -= ncpus;
|
||||||
virTypedParameterArrayClear(params, nparams * ncpus);
|
virTypedParamsClear(params, nparams * ncpus);
|
||||||
}
|
}
|
||||||
VIR_FREE(params);
|
VIR_FREE(params);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user