pkg_distro = distro_stats_new(distro_name);
tmp = (struct distro_stats **)list_add((void **)pkg->distros,
(void *)pkg_distro);
- free(pkg->distros);
+ if (pkg->distros != tmp)
+ free(pkg->distros);
pkg->distros = tmp;
}
distro_stats_free(*distros);
distros++;
}
+ free(distros);
}
}
static void version_stats_free(struct version_stats *version)
{
- struct distro_stats **distros;
-
- distros = version->distros;
- if (distros) {
- while (*distros) {
- distro_stats_free(*distros);
- distros++;
- }
- free(version->distros);
- }
-
+ distro_stats_list_free(version->distros);
daily_download_total_list_free(version->daily_download_totals);
free(version->version);