memleak and make valgrind happy
authorJean-Philippe Orsini <jeanfi@gmail.com>
Sun, 23 Feb 2014 12:11:54 +0000 (12:11 +0000)
committerJean-Philippe Orsini <jeanfi@gmail.com>
Sun, 23 Feb 2014 12:11:54 +0000 (12:11 +0000)
src/lp.c
src/ppastats.c

index 3219f11..67e6ed5 100644 (file)
--- a/src/lp.c
+++ b/src/lp.c
@@ -91,14 +91,18 @@ struct bpph *bpph_new(const char *binary_package_name,
 
 void bpph_list_free(struct bpph **list)
 {
-       struct bpph **l_cur = list;
+       struct bpph **cur;
 
-       while (*l_cur) {
-               bpph_free(*l_cur);
-               l_cur++;
-       }
+       if (list) {
+               cur = list;
 
-       free(list);
+               while (*cur) {
+                       bpph_free(*cur);
+                       cur++;
+               }
+
+               free(list);
+       }
 }
 
 char *get_archive_url(const char *owner, const char *ppa)
@@ -150,10 +154,13 @@ void distro_arch_series_free(struct distro_arch_series *d)
 
 void distro_arch_series_list_free(struct distro_arch_series **list)
 {
+       struct distro_arch_series **cur;
+
        if (list) {
-               while (*list) {
-                       distro_arch_series_free(*list);
-                       list++;
+               cur = list;
+               while (*cur) {
+                       distro_arch_series_free(*cur);
+                       cur++;
                }
                free(list);
        }
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);
        }