]> xenbits.xensource.com Git - libvirt.git/commitdiff
tests: schema: Simplify memory handling using g_autofree
authorPeter Krempa <pkrempa@redhat.com>
Tue, 19 Nov 2019 10:16:34 +0000 (11:16 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 20 Nov 2019 11:57:50 +0000 (12:57 +0100)
Refactor various functions to avoid multiple freeing function calls.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
tests/virschematest.c

index 5d092d8c8e416e4968492cd207a743a791ed1f86..8a2322b3bd8d5069876f036a2df70de5d99874bc 100644 (file)
@@ -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;
 }