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

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  Module: rpm                              Date:   26-Nov-2007 06:42:24
  Branch: HEAD                             Handle: 2007112605422301

  Modified files:
    rpm                     CHANGES
    rpm/lib                 psm.c
    rpm/rpmdb               librpmdb.vers

  Log:
    - limit headerGetEntry usage to -lrpmdb only.

  Summary:
    Revision    Changes     Path
    1.1890      +1  -0      rpm/CHANGES
    2.270       +9  -6      rpm/lib/psm.c
    1.36        +0  -1      rpm/rpmdb/librpmdb.vers
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.1889 -r1.1890 CHANGES
  --- rpm/CHANGES       26 Nov 2007 05:16:48 -0000      1.1889
  +++ rpm/CHANGES       26 Nov 2007 05:42:23 -0000      1.1890
  @@ -1,4 +1,5 @@
   5.0a2 -> 5.0a3:
  +    - jbj: limit headerGetEntry usage to -lrpmdb only.
       - jbj: Eliminate header.h and hdrinline.h.
       - jbj: insure that HE_t in headerGet/headerNext is initialized sanely.
       - jbj: python: lose rpmMergeHeaderFoo methods.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/psm.c
  ============================================================================
  $ cvs diff -u -r2.269 -r2.270 psm.c
  --- rpm/lib/psm.c     26 Nov 2007 02:03:09 -0000      2.269
  +++ rpm/lib/psm.c     26 Nov 2007 05:42:24 -0000      2.270
  @@ -112,6 +112,7 @@
        /[EMAIL PROTECTED] rpmGlobalMacroContext, h_errno, fileSystem, 
internalState @*/
        /[EMAIL PROTECTED] psm, rpmGlobalMacroContext, fileSystem, 
internalState @*/
   {
  +    HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he));
       const rpmts ts = psm->ts;
       rpmte te = psm->te;
       rpmfi fi = psm->fi;
  @@ -153,21 +154,22 @@
   
       sfi = replaced;
       while ((h = rpmdbNextIterator(mi)) != NULL) {
  -     rpmTagData secStates;
        int modified;
  -     rpmTagCount count;
   
        modified = 0;
   
  -     if (!headerGetEntry(h, RPMTAG_FILESTATES, NULL, &secStates, &count))
  +     /* XXX FIXME: not correct yet, but headerGetEntry needs to die now! */
  +     he->tag = RPMTAG_FILESTATES;
  +     xx = headerGet(h, he, 0);
  +     if (!xx)
            continue;
        
        prev = rpmdbGetIteratorOffset(mi);
        num = 0;
        while (sfi->otherPkg && sfi->otherPkg == prev) {
  -         assert(sfi->otherFileNum < count);
  -         if (secStates.ui8p[sfi->otherFileNum] != RPMFILE_STATE_REPLACED) {
  -             secStates.ui8p[sfi->otherFileNum] = RPMFILE_STATE_REPLACED;
  +assert(sfi->otherFileNum < he->c);
  +         if (he->p.ui8p[sfi->otherFileNum] != RPMFILE_STATE_REPLACED) {
  +             he->p.ui8p[sfi->otherFileNum] = RPMFILE_STATE_REPLACED;
                if (modified == 0) {
                    /* Modified header will be rewritten. */
                    modified = 1;
  @@ -177,6 +179,7 @@
            }
            sfi++;
        }
  +     he->p.ptr = _free(he->p.ptr);
       }
       mi = rpmdbFreeIterator(mi);
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmdb/librpmdb.vers
  ============================================================================
  $ cvs diff -u -r1.35 -r1.36 librpmdb.vers
  --- rpm/rpmdb/librpmdb.vers   26 Nov 2007 05:16:52 -0000      1.35
  +++ rpm/rpmdb/librpmdb.vers   26 Nov 2007 05:42:24 -0000      1.36
  @@ -36,7 +36,6 @@
       headerFini;
       headerFree;
       headerGet;
  -    headerGetEntry;
       headerGetInstance;
       headerGetMagic;
       headerGetOrigin;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to