[libvirt] [libvirt-python PATCHv2 13/44] Import some virTypedParams* APIs from libvirt

Doug Goldstein cardoe at cardoe.com
Tue Nov 19 22:33:51 UTC 2013


On Tue, Nov 19, 2013 at 1:35 PM, Doug Goldstein <cardoe at cardoe.com> wrote:
> virTypedParamsClear() and virTypedParamsFree() were introduced in
> libvirt 1.0.2. In an effort to keep the code clean bring these two
> functions to libvirt-python if we're building against a version of
> libvirt that's older than 1.0.2
> ---
>  libvirt-utils.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
>  libvirt-utils.h |  6 ++++++
>  2 files changed, 51 insertions(+)
>
> diff --git a/libvirt-utils.c b/libvirt-utils.c
> index 6866bf1..3947596 100644
> --- a/libvirt-utils.c
> +++ b/libvirt-utils.c
> @@ -134,3 +134,48 @@ int virFileClose(int *fdptr)
>
>      return rc;
>  }
> +
> +#if ! LIBVIR_CHECK_VERSION(1, 0, 2)
> +/**
> + * virTypedParamsClear:
> + * @params: the array of the typed parameters
> + * @nparams: number of parameters in the @params array
> + *
> + * Frees all memory used by string parameters. The memory occupied by @params
> + * is not free; use virTypedParamsFree if you want it to be freed too.
> + *
> + * Returns nothing.
> + */
> +void
> +virTypedParamsClear(virTypedParameterPtr params,
> +                    int nparams)
> +{
> +    size_t 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 the typed parameters
> + * @nparams: number of parameters in the @params array
> + *
> + * Frees all memory used by string parameters and the memory occuiped by
> + * @params.
> + *
> + * Returns nothing.
> + */
> +void
> +virTypedParamsFree(virTypedParameterPtr params,
> +                   int nparams)
> +{
> +    virTypedParamsClear(params, nparams);
> +    VIR_FREE(params);
> +}
> +#endif /* ! LIBVIR_CHECK_VERSION(1, 0, 2) */
> diff --git a/libvirt-utils.h b/libvirt-utils.h
> index 447e81f..0517f9c 100644
> --- a/libvirt-utils.h
> +++ b/libvirt-utils.h
> @@ -200,4 +200,10 @@ int virFileClose(int *fdptr)
>  # define VIR_FORCE_CLOSE(FD) \
>      ignore_value(virFileClose(&(FD)))
>
> +# if ! LIBVIR_CHECK_VERSION(1, 0, 2)
> +void virTypedParamsClear(virTypedParameterPtr params, int nparams);
> +
> +void virTypedParamsFree(virTypedParameterPtr params, int nparams);
> +# endif /* ! LIBVIR_CHECK_VERSION(1, 0, 2) */
> +
>  #endif /* __LIBVIRT_UTILS_H__ */
> --
> 1.8.3.2
>

Rather than repost the whole series since we're still a work in
progress. I had to add #include <libvirt/libvirt.h> at the top in this
file.

-- 
Doug Goldstein




More information about the libvir-list mailing list