1
0
mirror of https://gitlab.com/libvirt/libvirt-python.git synced 2025-08-03 08:21:58 +03:00

Import some virTypedParams* APIs from libvirt

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
This commit is contained in:
Doug Goldstein
2013-11-18 17:02:49 -05:00
committed by Daniel P. Berrange
parent ac89e8177d
commit 4d083fbf60
2 changed files with 52 additions and 0 deletions

View File

@ -23,6 +23,7 @@
#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
#include <libvirt/libvirt.h>
#include "libvirt-utils.h"
/**
@ -138,3 +139,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) */

View File

@ -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__ */