Use it to free the arrays after use, so that we do not leak.
@@ -66,3 +66,11 @@ pkg_array_sort(struct pkg_array *a, pkg_sorter_func *pkg_sort)
qsort(a->pkgs, a->n_pkgs, sizeof(a->pkgs[0]), pkg_sort);
}
+void
+pkg_array_free(struct pkg_array *a)
+{
+ a->n_pkgs = 0;
+ free(a->pkgs);
+ a->pkgs = NULL;
+}
+
@@ -35,6 +35,7 @@ struct pkg_array {
void pkg_array_init_from_db(struct pkg_array *a);
void pkg_array_sort(struct pkg_array *a, pkg_sorter_func *pkg_sort);
+void pkg_array_free(struct pkg_array *a);
DPKG_END_DECLS
@@ -181,6 +181,8 @@ void listpackages(const char *const *argv) {
if (ferror(stdout)) werr("stdout");
if (ferror(stderr)) werr("stderr");
+ pkg_array_free(&array);
modstatdb_shutdown();
@@ -427,6 +429,8 @@ void showpackages(const char *const *argv) {
freeformat(fmt);
@@ -78,6 +78,8 @@ void getselections(const char *const *argv) {
void setselections(const char *const *argv) {