[prev in list] [next in list] [prev in thread] [next in thread]
List: rpm-devel
Subject: Re: [CVS] RPM: rpm/lib/ rpmgi.c verify.c rpm/rpmdb/ rpmdb.c rpm/tools/
From: Jeff Johnson <n3npq () mac ! com>
Date: 2009-12-10 13:49:37
Message-ID: 950929C7-EDB3-4B2F-9F42-8F0BCD2CBA6E () mac ! com
[Download RAW message or body]
THere's some subtleties with uint32_t <-> rpmuint32_t that are
gonna need some work.
Again, rpmuint32_t (and other rpmuint* types) should be used
only for Header data types.
The right fix for hdrNum is a private data type specifically
for the (curently uint32_t) primary package key.
Hmmm, perhaps
typedef uint32_t hdrNum_t;
is easiest to remember and still unigue enough to find/replace
as needed.
73 de Jeff
On Dec 10, 2009, at 4:53 AM, Pinto Elia wrote:
> RPM Package Manager, CVS Repository
> http://rpm5.org/cvs/
> ____________________________________________________________________________
>
> Server: rpm5.org Name: Pinto Elia
> Root: /v/rpm/cvs Email: devzero2000@rpm5.org
> Module: rpm Date: 10-Dec-2009 10:53:45
> Branch: HEAD Handle: 2009121009534400
>
> Modified files:
> rpm/lib rpmgi.c verify.c
> rpm/rpmdb rpmdb.c
> rpm/tools rpmrepo.c
>
> Log:
> try to use headerGetInstance consistently with rpmuint32_t for the
> return data type and hdrNum.
>
> Summary:
> Revision Changes Path
> 2.71 +4 -4 rpm/lib/rpmgi.c
> 2.198 +3 -3 rpm/lib/verify.c
> 1.356 +2 -2 rpm/rpmdb/rpmdb.c
> 2.23 +1 -1 rpm/tools/rpmrepo.c
> ____________________________________________________________________________
>
> patch -p0 <<'@@ .'
> Index: rpm/lib/rpmgi.c
> ============================================================================
> $ cvs diff -u -r2.70 -r2.71 rpmgi.c
> --- rpm/lib/rpmgi.c 27 Nov 2009 14:29:05 -0000 2.70
> +++ rpm/lib/rpmgi.c 10 Dec 2009 09:53:44 -0000 2.71
> @@ -730,10 +730,10 @@
> /* XXX rpmgi hack: Save header in transaction element. */
> if (gi->flags & RPMGI_ERASING) {
> static int hdrx = 0;
> - uint32_t dboffset = headerGetInstance(gi->h);
> - if (dboffset <= 0)
> - dboffset = --hdrx;
> - xx = rpmtsAddEraseElement(gi->ts, gi->h, dboffset);
> + rpmuint32_t hdrNum = headerGetInstance(gi->h);
> + if (hdrNum <= 0)
> + hdrNum = --hdrx;
> + xx = rpmtsAddEraseElement(gi->ts, gi->h, hdrNum);
> } else
> xx = rpmtsAddInstallElement(gi->ts, gi->h, (fnpyKey)gi->hdrPath, 2, NULL);
> }
> @@ .
> patch -p0 <<'@@ .'
> Index: rpm/lib/verify.c
> ============================================================================
> $ cvs diff -u -r2.197 -r2.198 verify.c
> --- rpm/lib/verify.c 29 Aug 2009 18:51:14 -0000 2.197
> +++ rpm/lib/verify.c 10 Dec 2009 09:53:44 -0000 2.198
> @@ -395,7 +395,7 @@
> /*@modifies ts, h, rpmGlobalMacroContext, fileSystem, internalState @*/
> {
> #ifdef NOTYET
> - int instance = headerGetInstance(h);
> + rpmuint32_t hdrNum = headerGetInstance(h);
> #endif
> rpmps ps;
> int rc = 0; /* assume no problems */
> @@ -403,8 +403,8 @@
>
> rpmtsEmpty(ts);
> #ifdef NOTYET
> - if (instance > 0)
> - (void) rpmtsAddEraseElement(ts, h, instance);
> + if (hdrNum > 0)
> + (void) rpmtsAddEraseElement(ts, h, hdrNum);
> else
> #endif
> (void) rpmtsAddInstallElement(ts, h, NULL, 0, NULL);
> @@ .
> patch -p0 <<'@@ .'
> Index: rpm/rpmdb/rpmdb.c
> ============================================================================
> $ cvs diff -u -r1.355 -r1.356 rpmdb.c
> --- rpm/rpmdb/rpmdb.c 9 Dec 2009 21:40:20 -0000 1.355
> +++ rpm/rpmdb/rpmdb.c 10 Dec 2009 09:53:44 -0000 1.356
> @@ -2775,7 +2775,7 @@
> sigset_t signalMask;
> dbiIndex dbi;
> size_t dbix;
> - uint32_t hdrNum = headerGetInstance(h);
> + rpmuint32_t hdrNum = headerGetInstance(h);
> int ret = 0;
> int xx;
>
> @@ -3404,7 +3404,7 @@
> (void) rpmmiSetHdrChk(mi, ts);
>
> while ((h = rpmmiNext(mi)) != NULL) {
> - uint32_t hdrNum = headerGetInstance(h);
> + rpmuint32_t hdrNum = headerGetInstance(h);
>
> /* XXX ensure that the header instance is set persistently. */
> assert(hdrNum > 0 && hdrNum == rpmmiInstance(mi));
> @@ .
> patch -p0 <<'@@ .'
> Index: rpm/tools/rpmrepo.c
> ============================================================================
> $ cvs diff -u -r2.22 -r2.23 rpmrepo.c
> --- rpm/tools/rpmrepo.c 3 Jul 2009 18:11:08 -0000 2.22
> +++ rpm/tools/rpmrepo.c 10 Dec 2009 09:53:44 -0000 2.23
> @@ -1133,7 +1133,7 @@
> if (nsubs > 0) {
> char instance[64];
> int xx = snprintf(instance, sizeof(instance), "'%u'",
> - (unsigned) headerGetInstance(h));
> + (rpmuint32_t) headerGetInstance(h));
> size_t tlen = strlen(s) + nsubs * ((int)strlen(instance) - (int)nmark);
> char * t = xmalloc(tlen + 1);
> char * te = t;
> @@ .
> ______________________________________________________________________
> RPM Package Manager http://rpm5.org
> CVS Sources Repository rpm-cvs@rpm5.org
______________________________________________________________________
RPM Package Manager http://rpm5.org
Developer Communication List rpm-devel@rpm5.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic