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:   02-May-2008 18:10:49
  Branch: HEAD                             Handle: 2008050216104801

  Modified files:
    rpm                     CHANGES
    rpm/lib                 depends.c rpmts.c

  Log:
    - jbj: initialize ts->PRCO lazily (measured 20.4% rpm -qa speedup
    ymmv).

  Summary:
    Revision    Changes     Path
    1.2314      +1  -0      rpm/CHANGES
    1.396       +3  -3      rpm/lib/depends.c
    2.146       +18 -7      rpm/lib/rpmts.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2313 -r1.2314 CHANGES
  --- rpm/CHANGES       29 Apr 2008 21:45:39 -0000      1.2313
  +++ rpm/CHANGES       2 May 2008 16:10:48 -0000       1.2314
  @@ -1,5 +1,6 @@
   
   5.1.0 -> 5.2a0:
  +    - jbj: initialize ts->PRCO lazily (measured 20.4% rpm -qa speedup ymmv).
       - glen: print error when makeTempPath fails due missing temp dir
       - jbj: add _fdopen to FDIO_t, expose fdbg(), make lzdio.c standalone.
       - jbj: expose XfdLink/XfdFree/XfdNew, nuke the FDIO_t vectors.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/depends.c
  ============================================================================
  $ cvs diff -u -r1.395 -r1.396 depends.c
  --- rpm/lib/depends.c 28 Apr 2008 16:37:20 -0000      1.395
  +++ rpm/lib/depends.c 2 May 2008 16:10:49 -0000       1.396
  @@ -1047,7 +1047,7 @@
   #else
        rpmTag tagN = RPMTAG_PROVIDENAME;
   #endif
  -     rpmds P = rpmdsFromPRCO(ts->PRCO, tagN);
  +     rpmds P = rpmdsFromPRCO(rpmtsPRCO(ts), tagN);
        if (rpmdsSearch(P, dep) >= 0) {
            rpmdsNotify(dep, _("(sysinfo provides)"), rc);
            goto exit;
  @@ -2607,8 +2607,8 @@
        * Make sure transaction dependencies are satisfied.
        */
       {        const char * tsNEVRA = "transaction dependencies";
  -     rpmds R = rpmdsFromPRCO(ts->PRCO, RPMTAG_REQUIRENAME);
  -     rpmds C = rpmdsFromPRCO(ts->PRCO, RPMTAG_CONFLICTNAME);
  +     rpmds R = rpmdsFromPRCO(rpmtsPRCO(ts), RPMTAG_REQUIRENAME);
  +     rpmds C = rpmdsFromPRCO(rpmtsPRCO(ts), RPMTAG_CONFLICTNAME);
        rpmds D = NULL;
        rpmds L = NULL;
        const char * dep = NULL;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmts.c
  ============================================================================
  $ cvs diff -u -r2.145 -r2.146 rpmts.c
  --- rpm/lib/rpmts.c   2 Apr 2008 18:35:26 -0000       2.145
  +++ rpm/lib/rpmts.c   2 May 2008 16:10:49 -0000       2.146
  @@ -904,8 +904,24 @@
   
   rpmPRCO rpmtsPRCO(rpmts ts)
   {
  +    rpmPRCO PRCO = NULL;
  +
  +    if (ts != NULL) {
  +     static int oneshot = 0;
  +     if (!oneshot) {
  +         const char * fn = rpmGetPath("%{?_rpmds_sysinfo_path}", NULL);
  +         int xx;
  +
  +         ts->PRCO = rpmdsNewPRCO(NULL);
  +         if (fn && *fn != '\0' && !rpmioAccess(fn, NULL, R_OK))
  +             xx = rpmdsSysinfo(ts->PRCO, NULL);
  +         fn = _free(fn);
  +         oneshot++;
  +     }
  +     PRCO = ts->PRCO;
  +    }
   /[EMAIL PROTECTED] -retexpose -usereleased @*/
  -    return (ts != NULL ? ts->PRCO : NULL);
  +    return PRCO;
   /[EMAIL PROTECTED] =retexpose =usereleased @*/
   }
   
  @@ -1297,12 +1313,7 @@
       ts->nsuggests = 0;
       ts->suggests = NULL;
   
  -    ts->PRCO = rpmdsNewPRCO(NULL);
  -    {        const char * fn = rpmGetPath("%{?_rpmds_sysinfo_path}", NULL);
  -     if (fn && *fn != '\0' && !rpmioAccess(fn, NULL, R_OK))
  -        xx = rpmdsSysinfo(ts->PRCO, NULL);
  -     fn = _free(fn);
  -    }
  +    ts->PRCO = NULL;
   
       ts->sdb = NULL;
       ts->sdbmode = O_RDONLY;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to