From: Jean-Philippe Orsini Date: Sun, 23 Feb 2014 12:11:54 +0000 (+0000) Subject: memleak and make valgrind happy X-Git-Tag: v1.3.0~25 X-Git-Url: http://git.wpitchoune.net/gitweb/?p=ppastats.git;a=commitdiff_plain;h=4f7d6ce1bef70a80070b9b8cd005e1418177ea44 memleak and make valgrind happy --- diff --git a/src/lp.c b/src/lp.c index 3219f11..67e6ed5 100644 --- 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); } diff --git a/src/ppastats.c b/src/ppastats.c index 9ce7dee..38dbf16 100644 --- a/src/ppastats.c +++ b/src/ppastats.c @@ -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); }