Return headers from rpmgiNext() directly
authorPanu Matilainen <pmatilai@redhat.com>
Fri, 19 Mar 2010 17:25:23 +0000 (19:25 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Fri, 19 Mar 2010 17:25:23 +0000 (19:25 +0200)
lib/query.c
lib/rpmgi.c
lib/rpmgi.h

index 9cf2708..8e296b5 100644 (file)
@@ -270,15 +270,12 @@ static int rpmgiShowMatches(QVA_t qva, rpmts ts)
 {
     rpmgi gi = qva->qva_gi;
     int ec = 0;
+    Header h;
 
-    while (rpmgiNext(gi) == RPMRC_OK) {
-       Header h;
+    while ((h = rpmgiNext(gi)) != NULL) {
        int rc;
 
        rpmdbCheckSignals();
-       h = rpmgiHeader(gi);
-       if (h == NULL)          /* XXX perhaps stricter break instead? */
-           continue;
        if ((rc = qva->qva_showPackage(qva, ts, h)) != 0)
            ec = rc;
     }
index 92a356d..c7407d8 100644 (file)
@@ -229,12 +229,12 @@ rpmgi rpmgiNew(rpmts ts, rpmgiFlags flags, ARGV_const_t argv)
     return gi;
 }
 
-rpmRC rpmgiNext(rpmgi gi)
+Header rpmgiNext(rpmgi gi)
 {
     rpmRC rpmrc = RPMRC_NOTFOUND;
 
     if (gi == NULL)
-       return rpmrc;
+       return NULL;
 
     /* Free header from previous iteration. */
     gi->h = headerFree(gi->h);
@@ -256,18 +256,13 @@ rpmRC rpmgiNext(rpmgi gi)
            goto enditer;
     }
 
-    return rpmrc;
+    return gi->h;
 
 enditer:
     gi->h = headerFree(gi->h);
     gi->i = -1;
     gi->active = 0;
-    return rpmrc;
-}
-
-Header rpmgiHeader(rpmgi gi)
-{
-    return (gi != NULL ? gi->h : NULL);
+    return NULL;
 }
 
 int rpmgiNumErrors(rpmgi gi)
index 079109f..79abbe6 100644 (file)
@@ -47,18 +47,10 @@ rpmgi rpmgiNew(rpmts ts, rpmgiFlags flags, ARGV_const_t argv);
 /** \ingroup rpmgi
  * Perform next iteration step.
  * @param gi           generalized iterator
- * @returns            RPMRC_OK on success, RPMRC_NOTFOUND on EOI
+ * @returns            next header, NULL on end of iteration
  */
 RPM_GNUC_INTERNAL
-rpmRC rpmgiNext(rpmgi gi);
-
-/** \ingroup rpmgi
- * Return current iteration header.
- * @param gi           generalized iterator
- * @returns            header
- */
-RPM_GNUC_INTERNAL
-Header rpmgiHeader(rpmgi gi);
+Header rpmgiNext(rpmgi gi);
 
 /** \ingroup rpmgi
  * Return number of errors (file not found etc) encountered during iteration