poldek: poldek/pkgset.c, poldek/pkgset-req.c - fix: double call n_...

mis mis at pld-linux.org
Fri Jul 6 13:33:19 CEST 2007


Author: mis                          Date: Fri Jul  6 11:33:19 2007 GMT
Module: poldek                        Tag: HEAD
---- Log message:
- fix: double call n_array_free(); simplified pkgset_search_reqdir()

---- Files affected:
poldek/poldek:
   pkgset.c (1.96 -> 1.97) , pkgset-req.c (1.49 -> 1.50) 

---- Diffs:

================================================================
Index: poldek/poldek/pkgset.c
diff -u poldek/poldek/pkgset.c:1.96 poldek/poldek/pkgset.c:1.97
--- poldek/poldek/pkgset.c:1.96	Mon Jul  2 18:39:22 2007
+++ poldek/poldek/pkgset.c	Fri Jul  6 13:33:14 2007
@@ -502,13 +502,12 @@
     return pkgs;
 }
 
-tn_array *pkgset_search_reqdir(struct pkgset *ps, tn_array *pkgs,
-                               const char *dir)
+static
+tn_array *do_search_reqdir(struct pkgset *ps, tn_array *pkgs, const char *dir)
 {
     tn_array *tmp = pkgs_array_new(32);
     int i, pkgs_passsed = 1;
     
-        
     for (i=0; i < n_array_size(ps->pkgdirs); i++) {
         struct pkgdir *pkgdir = n_array_nth(ps->pkgdirs, i);
         
@@ -535,7 +534,7 @@
     }
     n_array_free(tmp);
 
-    if (pkgs_passsed && n_array_size(pkgs) == 0)
+    if (!pkgs_passsed && n_array_size(pkgs) == 0)
         n_array_cfree(&pkgs);
     
 #if ENABLE_TRACE
@@ -547,12 +546,15 @@
     return pkgs;
 }
 
+tn_array *pkgset_search_reqdir(struct pkgset *ps, const char *dir)
+{
+    return do_search_reqdir(ps, NULL, dir);
+}
 
 tn_array *pkgset_search(struct pkgset *ps, enum pkgset_search_tag tag,
                         const char *value)
 {
     tn_array *pkgs;
-
     
     n_array_sort(ps->pkgs);
     pkgs = pkgs_array_new_ex(4, pkg_cmp_name_evr_rev);
@@ -591,7 +593,8 @@
                 break;
             else {
                 struct pkg *buf[1024];
-                int i, n;
+                int i, n = 0;
+                
                 n = file_index_lookup(ps->file_idx, value, 0, buf, 1024);
                 n_assert(n >= 0);
                 
@@ -600,7 +603,7 @@
                         n_array_push(pkgs, pkg_link(buf[i]));
 
                 } else {
-                    pkgset_search_reqdir(ps, pkgs, value);
+                    do_search_reqdir(ps, pkgs, value);
                 }
             }
             break;
@@ -611,7 +614,7 @@
             break;
             
     }
-    
+
     if (n_array_size(pkgs) == 0) {
         n_array_free(pkgs);
         pkgs = NULL;

================================================================
Index: poldek/poldek/pkgset-req.c
diff -u poldek/poldek/pkgset-req.c:1.49 poldek/poldek/pkgset-req.c:1.50
--- poldek/poldek/pkgset-req.c:1.49	Tue Jun 19 16:12:34 2007
+++ poldek/poldek/pkgset-req.c	Fri Jul  6 13:33:14 2007
@@ -32,8 +32,7 @@
 #include "fileindex.h"
 
 extern int poldek_conf_MULTILIB;
-extern tn_array *pkgset_search_reqdir(struct pkgset *ps, tn_array *pkgs,
-                                      const char *dir);
+extern tn_array *pkgset_search_reqdir(struct pkgset *ps, const char *dir);
 
 void *pkg_na_malloc(struct pkg *pkg, size_t size);
 
@@ -331,7 +330,7 @@
             
         } else {                /* n is 0 */
             tn_array *pkgs;
-            if ((pkgs = pkgset_search_reqdir(ps, NULL, reqname))) {
+            if ((pkgs = pkgset_search_reqdir(ps, reqname))) {
                 int i;
                 n = 0;
 
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/poldek/poldek/pkgset.c?r1=1.96&r2=1.97&f=u
    http://cvs.pld-linux.org/poldek/poldek/pkgset-req.c?r1=1.49&r2=1.50&f=u



More information about the pld-cvs-commit mailing list