]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
domain_conf: Separate virDomainOS clear into a function
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 23 Mar 2021 10:47:39 +0000 (11:47 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 23 Mar 2021 12:56:34 +0000 (13:56 +0100)
The virDomainDefFree() function frees individual members of
virDomainDef struct. The function is already long enough, move
code that handles def->os member into a separate function.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/conf/domain_conf.c

index 95602ae57e1a6fff3612e545bd405e43b4bf19b9..3aefa8f335bd2907e132077c02618d80dc6a0a63 100644 (file)
@@ -3527,6 +3527,36 @@ virDomainSEVDefFree(virDomainSEVDefPtr def)
     g_free(def);
 }
 
+static void
+virDomainOSDefClear(virDomainOSDef *os)
+{
+    size_t i;
+
+    g_free(os->machine);
+    g_free(os->init);
+    for (i = 0; os->initargv && os->initargv[i]; i++)
+        g_free(os->initargv[i]);
+    g_free(os->initargv);
+    for (i = 0; os->initenv && os->initenv[i]; i++) {
+        g_free(os->initenv[i]->name);
+        g_free(os->initenv[i]->value);
+        g_free(os->initenv[i]);
+    }
+    g_free(os->initdir);
+    g_free(os->inituser);
+    g_free(os->initgroup);
+    g_free(os->initenv);
+    g_free(os->kernel);
+    g_free(os->initrd);
+    g_free(os->cmdline);
+    g_free(os->dtb);
+    g_free(os->root);
+    g_free(os->slic_table);
+    virDomainLoaderDefFree(os->loader);
+    g_free(os->bootloader);
+    g_free(os->bootloaderArgs);
+}
+
 
 void virDomainDefFree(virDomainDefPtr def)
 {
@@ -3640,29 +3670,7 @@ void virDomainDefFree(virDomainDefPtr def)
     g_free(def->idmap.uidmap);
     g_free(def->idmap.gidmap);
 
-    g_free(def->os.machine);
-    g_free(def->os.init);
-    for (i = 0; def->os.initargv && def->os.initargv[i]; i++)
-        g_free(def->os.initargv[i]);
-    g_free(def->os.initargv);
-    for (i = 0; def->os.initenv && def->os.initenv[i]; i++) {
-        g_free(def->os.initenv[i]->name);
-        g_free(def->os.initenv[i]->value);
-        g_free(def->os.initenv[i]);
-    }
-    g_free(def->os.initdir);
-    g_free(def->os.inituser);
-    g_free(def->os.initgroup);
-    g_free(def->os.initenv);
-    g_free(def->os.kernel);
-    g_free(def->os.initrd);
-    g_free(def->os.cmdline);
-    g_free(def->os.dtb);
-    g_free(def->os.root);
-    g_free(def->os.slic_table);
-    virDomainLoaderDefFree(def->os.loader);
-    g_free(def->os.bootloader);
-    g_free(def->os.bootloaderArgs);
+    virDomainOSDefClear(&def->os);
 
     virDomainClockDefClear(&def->clock);