if (val) {
for (i = 0; i < nparams; i++) {
VIR_FREE(val[i].field);
- if (params[i].type == VIR_TYPED_PARAM_STRING)
+ if (val[i].value.type == VIR_TYPED_PARAM_STRING)
VIR_FREE(val[i].value.remote_typed_param_value_u.s);
}
VIR_FREE(val);
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
+ virTypedParameterArrayClear(params, nparams);
+ VIR_FREE(params);
if (dom)
virDomainFree(dom);
- VIR_FREE(params);
return rv;
no_memory:
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
+ virTypedParameterArrayClear(params, nparams);
+ VIR_FREE(params);
if (dom)
virDomainFree(dom);
- VIR_FREE(params);
return rv;
no_memory:
{
virTypedParameterPtr params = NULL;
virDomainPtr dom = NULL;
- int i;
const char *path = args->path;
int nparams = args->nparams;
unsigned int flags;
rv = 0;
cleanup:
- if (rv < 0) {
+ if (rv < 0)
virNetMessageSaveError(rerr);
- if (ret->params.params_val) {
- for (i = 0; i < nparams; i++)
- VIR_FREE(ret->params.params_val[i].field);
- VIR_FREE(ret->params.params_val);
- }
- }
+ virTypedParameterArrayClear(params, nparams);
+ VIR_FREE(params);
if (dom)
virDomainFree(dom);
- VIR_FREE(params);
return rv;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
+ virTypedParameterArrayClear(params, nparams);
+ VIR_FREE(params);
if (dom)
virDomainFree(dom);
- VIR_FREE(params);
return rv;
}
# Note: The body of the function is in @function.
# Remove decl of buf, if buf isn't used in the function.
- my @uses = grep /\bbuf\b/, @function;
- @function = grep !/\bbuf\b/, @function if @uses == 1;
+ my @uses = grep /[^.>]\bbuf\b/, @function;
+ @function = grep !/[^.>]\bbuf\b/, @function if @uses == 1;
# Remove decl of i, if i isn't used in the function.
- @uses = grep /\bi\b/, @function;
- @function = grep !/\bi\b/, @function if @uses == 1;
+ @uses = grep /[^.>]\bi\b/, @function;
+ @function = grep !/[^.>]\bi\b/, @function if @uses == 1;
# (char **)&objp->... gives:
# warning: dereferencing type-punned pointer will break