RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson
Root: /v/rpm/cvs Email: jbj@rpm5.org
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 @@
/*@globals rpmGlobalMacroContext, h_errno, fileSystem, internalState @*/
/*@modifies 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;
@@ .
Received on Mon Nov 26 06:42:24 2007