mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
libxl: make some _dispose functions idempotent and tolerate NULL
These functions are not generated, so we need to do it by hand. Functions list: libxl_bitmap_dispose libxl_string_list_dispose libxl_key_value_list_dipose libxl_cpuid_dispose Signed-off-by: Wei Liu <wei.liu2@citrix.com> Cc: Ian Campbell <ian.campbell@citrix.com> Cc: Ian Jackson <ian.jackson@eu.citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com>
This commit is contained in:
1 parent
6d8261111b
commit
1ea68f1a82
3 files changed
+18
-3
No files matched your search
+9
-2
@@ -214,9 +214,12 @@ void libxl_string_list_dispose(libxl_string_list *psl)
|
||||
if (!sl)
|
||||
return;
|
||||
|
||||
for (i = 0; sl[i] != NULL; i++)
|
||||
for (i = 0; sl[i] != NULL; i++) {
|
||||
free(sl[i]);
|
||||
sl[i] = NULL;
|
||||
}
|
||||
free(sl);
|
||||
*psl = NULL;
|
||||
}
|
||||
|
||||
void libxl_string_list_copy(libxl_ctx *ctx,
|
||||
@@ -276,10 +279,14 @@ void libxl_key_value_list_dispose(libxl_key_value_list *pkvl)
|
||||
|
||||
for (i = 0; kvl[i] != NULL; i += 2) {
|
||||
free(kvl[i]);
|
||||
if (kvl[i + 1])
|
||||
kvl[i] = NULL;
|
||||
if (kvl[i + 1]) {
|
||||
free(kvl[i + 1]);
|
||||
kvl[i+1] = NULL;
|
||||
}
|
||||
}
|
||||
free(kvl);
|
||||
*pkvl = NULL;
|
||||
}
|
||||
|
||||
void libxl_key_value_list_copy(libxl_ctx *ctx,
|
||||
|
||||
@@ -28,10 +28,13 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list *p_cpuid_list)
|
||||
return;
|
||||
for (i = 0; cpuid_list[i].input[0] != XEN_CPUID_INPUT_UNUSED; i++) {
|
||||
for (j = 0; j < 4; j++)
|
||||
if (cpuid_list[i].policy[j] != NULL)
|
||||
if (cpuid_list[i].policy[j] != NULL) {
|
||||
free(cpuid_list[i].policy[j]);
|
||||
cpuid_list[i].policy[j] = NULL;
|
||||
}
|
||||
}
|
||||
free(cpuid_list);
|
||||
*p_cpuid_list = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -604,7 +604,12 @@ void libxl_bitmap_init(libxl_bitmap *map)
|
||||
|
||||
void libxl_bitmap_dispose(libxl_bitmap *map)
|
||||
{
|
||||
if (!map)
|
||||
return;
|
||||
|
||||
free(map->map);
|
||||
map->map = NULL;
|
||||
map->size = 0;
|
||||
}
|
||||
|
||||
void libxl_bitmap_copy(libxl_ctx *ctx, libxl_bitmap *dptr,
|
||||
|
||||