cleanup:
if (rv < 0) {
- virTypedParameterArrayClear(params, i);
- VIR_FREE(params);
+ virTypedParamsFree(params, i);
+ params = NULL;
}
return params;
}
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
return rv;
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
return rv;
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
return rv;
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
return rv;
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
return rv;
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
return rv;
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
return rv;
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
if (dom)
virDomainFree(dom);
return rv;
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, args->ncpus * args->nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, args->ncpus * args->nparams);
if (dom)
virDomainFree(dom);
return rv;
cleanup:
if (rv < 0)
virNetMessageSaveError(rerr);
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return rv;
}
int type,
const char *value);
void
+virTypedParamsClear (virTypedParameterPtr params,
+ int nparams);
+void
virTypedParamsFree (virTypedParameterPtr params,
int nparams);
"virTypedParamsAddString",
"virTypedParamsAddUInt",
"virTypedParamsAddULLong",
+ "virTypedParamsClear",
"virTypedParamsFree",
"virTypedParamsGet",
"virTypedParamsGetBoolean",
ret = getPyVirTypedParameter(params, nparams);
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return ret;
}
start_cpu += queried_ncpus;
ncpus -= queried_ncpus;
- virTypedParameterArrayClear(params, sumparams);
+ virTypedParamsClear(params, sumparams);
}
} else {
LIBVIRT_BEGIN_ALLOW_THREADS;
Py_DECREF(total);
}
- virTypedParameterArrayClear(params, sumparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, sumparams);
return ret;
error:
- virTypedParameterArrayClear(params, sumparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, sumparams);
Py_DECREF(ret);
return error;
}
ret = getPyVirTypedParameter(params, nparams);
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return ret;
}
ret = getPyVirTypedParameter(params, nparams);
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return ret;
}
ret = VIR_PY_INT_SUCCESS;
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
VIR_FREE(new_params);
return ret;
}
ret = VIR_PY_INT_SUCCESS;
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
VIR_FREE(new_params);
return ret;
}
ret = VIR_PY_INT_SUCCESS;
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
VIR_FREE(new_params);
return ret;
}
ret = getPyVirTypedParameter(params, nparams);
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return ret;
}
ret = VIR_PY_INT_SUCCESS;
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
VIR_FREE(new_params);
return ret;
}
ret = getPyVirTypedParameter(params, nparams);
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return ret;
}
ret = VIR_PY_INT_SUCCESS;
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
VIR_FREE(new_params);
return ret;
}
ret = getPyVirTypedParameter(params, nparams);
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return ret;
}
ret = VIR_PY_INT_SUCCESS;
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
VIR_FREE(new_params);
return ret;
}
ret = getPyVirTypedParameter(params, nparams);
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return ret;
}
ret = VIR_PY_INT_SUCCESS;
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
VIR_FREE(new_params);
return ret;
}
ret = getPyVirTypedParameter(params, nparams);
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return ret;
}
ret = VIR_PY_INT_SUCCESS;
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
VIR_FREE(new_params);
return ret;
}
ret = getPyVirTypedParameter(params, nparams);
cleanup:
- virTypedParameterArrayClear(params, nparams);
- VIR_FREE(params);
+ virTypedParamsFree(params, nparams);
return ret;
}
# virtypedparam.h
-virTypedParameterArrayClear;
virTypedParameterArrayValidate;
virTypedParameterAssign;
virTypedParameterAssignFromStr;
virTypedParamsAddString;
virTypedParamsAddUInt;
virTypedParamsAddULLong;
+ virTypedParamsClear;
virTypedParamsFree;
virTypedParamsGet;
virTypedParamsGetBoolean;
cleanup:
if (rv < 0)
- virTypedParameterArrayClear(params, i);
+ virTypedParamsClear(params, i);
return rv;
}
rv = ret.nparams;
cleanup:
if (rv < 0)
- virTypedParameterArrayClear(params, nparams * ncpus);
+ virTypedParamsClear(params, nparams * ncpus);
xdr_free((xdrproc_t) xdr_remote_domain_get_cpu_stats_ret,
(char *) &ret);
" $2,\n" .
" &n$1)) == NULL)\n" .
" goto cleanup;\n");
- push(@free_list, " virTypedParameterArrayClear($1, n$1);");
- push(@free_list, " VIR_FREE($1);");
+ push(@free_list, " virTypedParamsFree($1, n$1);");
} elsif ($args_member =~ m/<\S+>;/ or $args_member =~ m/\[\S+\];/) {
# just make all other array types fail
die "unhandled type for argument value: $args_member";
"boolean",
"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
* correct types, and with no duplicates. Pass in as many name/type
* pairs as appropriate, and pass NULL to end the list of accepted
*
* 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
- * 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
* new parameter (@maxparams < @nparams + 1), the function allocates more
* space for it and updates @maxparams. On success, @nparams is incremented
* 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
* 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
* (@maxparams < @nparams + 1), the function allocates more space for it and
* updates @maxparams. On success, @nparams is incremented by one. The
}
+/**
+ * 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:
* @params: the array of typed parameters
int nparams)
{
virResetLastError();
- virTypedParameterArrayClear(params, nparams);
+ virTypedParamsClear(params, nparams);
VIR_FREE(params);
}
# include "internal.h"
-void virTypedParameterArrayClear(virTypedParameterPtr params, int nparams);
-
int virTypedParameterArrayValidate(virTypedParameterPtr params, int nparams,
/* const char *name, int type ... */ ...)
ATTRIBUTE_SENTINEL ATTRIBUTE_RETURN_CHECK;
}
cpu += ncpus;
show_count -= ncpus;
- virTypedParameterArrayClear(params, nparams * ncpus);
+ virTypedParamsClear(params, nparams * ncpus);
}
VIR_FREE(params);