memleak and make valgrind happy
[ppastats.git] / src / ppastats.c
index 9ce7dee..38dbf16 100644 (file)
@@ -89,6 +89,12 @@ static struct version_stats *get_version_stats(struct package_stats *package,
        return v;
 }
 
+static void arch_stats_free(struct arch_stats *arch)
+{
+       free(arch->name);
+       free(arch);
+}
+
 static struct distro_stats *distro_stats_new(const char *name)
 {
        struct distro_stats *d;
@@ -102,6 +108,25 @@ static struct distro_stats *distro_stats_new(const char *name)
        return d;
 }
 
+static void distro_stats_free(struct distro_stats *distro)
+{
+       struct arch_stats **archs;
+
+       archs = distro->archs;
+       if (archs) {
+               while (*archs) {
+                       arch_stats_free(*archs);
+                       archs++;
+               }
+               free(distro->archs);
+       }
+
+       daily_download_total_list_free(distro->ddts);
+
+       free(distro->name);
+       free(distro);
+}
+
 static struct distro_stats *get_distro_stats(struct version_stats *version,
                                             const char *name)
 {
@@ -336,37 +361,15 @@ create_ppa_stats(const char *owner,
        return ppa;
 }
 
-static void arch_stats_free(struct arch_stats *arch)
-{
-       free(arch->name);
-       free(arch);
-}
-
-static void distro_stats_free(struct distro_stats *distro)
-{
-       struct arch_stats **archs;
-
-       archs = distro->archs;
-       if (archs) {
-               while (*archs) {
-                       arch_stats_free(*archs);
-                       archs++;
-               }
-               free(distro->archs);
-       }
-
-       daily_download_total_list_free(distro->ddts);
-
-       free(distro->name);
-       free(distro);
-}
-
 static void distro_stats_list_free(struct distro_stats **distros)
 {
+       struct distro_stats **cur;
+
        if (distros) {
-               while (*distros) {
-                       distro_stats_free(*distros);
-                       distros++;
+               cur = distros;
+               while (*cur) {
+                       distro_stats_free(*cur);
+                       cur++;
                }
                free(distros);
        }