Refactor various functions to avoid multiple freeing function calls.
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
tests/virschematest.c | 26 +++++++-------------------
1 file changed, 7 insertions(+), 19 deletions(-)
diff --git a/tests/virschematest.c b/tests/virschematest.c
index 5d092d8c8e..8a2322b3bd 100644
--- a/tests/virschematest.c
+++ b/tests/virschematest.c
@@ -72,8 +72,6 @@ testSchemaDir(const char *schema,
struct dirent *ent;
int ret = 0;
int rc;
- char *test_name = NULL;
- char *xml_path = NULL;
struct testSchemaData data = {
.validator = validator,
};
@@ -82,6 +80,9 @@ testSchemaDir(const char *schema,
return -1;
while ((rc = virDirRead(dir, &ent, dir_path)) > 0) {
+ g_autofree char *test_name = NULL;
+ g_autofree char *xml_path = NULL;
+
if (!virStringHasSuffix(ent->d_name, ".xml"))
continue;
if (ent->d_name[0] == '.')
@@ -94,16 +95,11 @@ testSchemaDir(const char *schema,
data.xml_path = xml_path;
if (virTestRun(test_name, testSchemaFile, &data) < 0)
ret = -1;
-
- VIR_FREE(test_name);
- VIR_FREE(xml_path);
}
if (rc < 0)
ret = -1;
- VIR_FREE(test_name);
- VIR_FREE(xml_path);
VIR_DIR_CLOSE(dir);
return ret;
}
@@ -114,19 +110,16 @@ testSchemaDirs(const char *schema, virXMLValidatorPtr validator, ...)
{
va_list args;
int ret = 0;
- char *dir_path = NULL;
const char *dir;
va_start(args, validator);
while ((dir = va_arg(args, char *))) {
- dir_path = g_strdup_printf("%s/%s", abs_srcdir, dir);
+ g_autofree char *dir_path = g_strdup_printf("%s/%s", abs_srcdir, dir);
if (testSchemaDir(schema, validator, dir_path) < 0)
ret = -1;
- VIR_FREE(dir_path);
}
- VIR_FREE(dir_path);
va_end(args);
return ret;
}
@@ -136,20 +129,15 @@ static int
testSchemaGrammar(const void *opaque)
{
struct testSchemaData *data = (struct testSchemaData *) opaque;
- char *schema_path;
- int ret = -1;
+ g_autofree char *schema_path = NULL;
schema_path = g_strdup_printf("%s/docs/schemas/%s", abs_top_srcdir,
data->schema);
if (!(data->validator = virXMLValidatorInit(schema_path)))
- goto cleanup;
-
- ret = 0;
+ return -1;
- cleanup:
- VIR_FREE(schema_path);
- return ret;
+ return 0;
}
--
2.23.0
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list