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:
Wei Liu authored and Ian Campbell committed 2015-03-02 17:05:35 +00:00
1 parent 6d8261111b
commit 1ea68f1a82
3 files changed
+18 -3

No files matched your search

+9 -2
View File
@@ -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,
+4 -1
View File
@@ -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;
}
+5
View File
@@ -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,
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.