[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rpm-cvs
Subject:    [CVS] RPM: rpm/rpmdb/ rpmdb.c
From:       "Alexey Tourbin" <at () rpm5 ! org>
Date:       2008-08-27 12:25:47
Message-ID: 20080827122547.92460779C8 () rpm5 ! org
[Download RAW message or body]

  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Alexey Tourbin
  Root:   /v/rpm/cvs                       Email:  at@rpm5.org
  Module: rpm                              Date:   27-Aug-2008 14:25:47
  Branch: HEAD                             Handle: 2008082712254700

  Modified files:
    rpm/rpmdb               rpmdb.c

  Log:
    rpmdb.c (rpmdbInitIterator): made (keyp == NULL) special case #3

  Summary:
    Revision    Changes     Path
    1.269       +5  -10     rpm/rpmdb/rpmdb.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/rpmdb.c
  ============================================================================
  $ cvs diff -u -r1.268 -r1.269 rpmdb.c
  --- rpm/rpmdb/rpmdb.c	27 Aug 2008 12:00:57 -0000	1.268
  +++ rpm/rpmdb/rpmdb.c	27 Aug 2008 12:25:47 -0000	1.269
  @@ -2668,6 +2668,11 @@
   	set->recs = xcalloc(1, sizeof(set->recs[0]));
   	set->recs[0].hdrNum = hdrNum.ui;
       }
  +    else if (keyp == NULL) {
  +	/* XXX Special case #3: they want empty iterator,
  +	 * for use with rpmdbAppendIterator(). */
  +	assert(keylen == 0);
  +    }
       else {
   	/* Common case: retrieve join keys. */
   	DBC * dbcursor = NULL;
  @@ -2675,20 +2680,10 @@
   	DBT v = DBT_INIT;
   	int rc;
   	int xx;
  -	int isLabel = 0;
   
   	/* XXX HACK to remove rpmdbFindByLabel/findMatches from the API */
   	if (rpmtag == RPMDBI_LABEL) {
   	    rpmtag = RPMTAG_NAME;
  -	    isLabel = 1;
  -	}
  -
  -	if (keyp == NULL) {
  -	    /* XXX HACK keyp should not be NULL here, but rpmdbFindFpList
  -	     * has rpmdbInitIterator(db, RPMTAG_BASENAMES, NULL, 0) call */
  -	    if (rpmtag != RPMTAG_BASENAMES)
  -		rc = 1;
  -	} else if (isLabel) {
   	    xx = dbiCopen(dbi, dbi->dbi_txnid, &dbcursor, 0);
   	    rc = dbiFindByLabel(dbi, dbcursor, &k, &v, keyp, &set);
   	    xx = dbiCclose(dbi, dbcursor, 0);
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic