The following commit has been merged in the master branch:
commit b53a6a7e6651e82eeb8cfafa1981b1c5d33b4e04
Author: Guillem Jover <guil...@debian.org>
Date:   Wed Feb 11 03:31:24 2009 +0200

    Add new pkg_array_free function
    
    Use it to free the arrays after use, so that we do not leak.

diff --git a/src/pkg-array.c b/src/pkg-array.c
index d5504a0..9599a3b 100644
--- a/src/pkg-array.c
+++ b/src/pkg-array.c
@@ -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;
+}
+
diff --git a/src/pkg-array.h b/src/pkg-array.h
index b8d336f..f783458 100644
--- a/src/pkg-array.h
+++ b/src/pkg-array.h
@@ -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
 
diff --git a/src/query.c b/src/query.c
index 579bd6f..c42f688 100644
--- a/src/query.c
+++ b/src/query.c
@@ -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) {
 
   if (ferror(stdout)) werr("stdout");
   if (ferror(stderr)) werr("stderr");  
+
+  pkg_array_free(&array);
   freeformat(fmt);
   modstatdb_shutdown();
 }
diff --git a/src/select.c b/src/select.c
index 426e07f..2a2f2a7 100644
--- a/src/select.c
+++ b/src/select.c
@@ -78,6 +78,8 @@ void getselections(const char *const *argv) {
   }
   if (ferror(stdout)) werr("stdout");
   if (ferror(stderr)) werr("stderr");
+
+  pkg_array_free(&array);
 }
 
 void setselections(const char *const *argv) {

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to debian-dpkg-cvs-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to