* @param depends installed package of pair (or RPMAL_NOMATCH on erase)
* @return 0 on success
*/
-static int removePackage(tsMembers tsmem, Header h, rpmte depends)
+static int removePackage(rpmts ts, Header h, rpmte depends)
{
+ tsMembers tsmem = rpmtsMembers(ts);
rpmte p;
unsigned int dboffset = headerGetInstance(h);
tsmem->order = xrealloc(tsmem->order, sizeof(*tsmem->order) * tsmem->orderAlloced);
}
- p = rpmteNew(NULL, h, TR_REMOVED, NULL, NULL, -1);
+ p = rpmteNew(ts, h, TR_REMOVED, NULL, NULL);
rpmteSetDependsOn(p, depends);
tsmem->order[tsmem->orderCount] = p;
if (rpmVersionCompare(h, oh) == 0)
continue;
- removePackage(tsmem, oh, p);
+ removePackage(ts, oh, p);
}
mi = rpmdbFreeIterator(mi);
}
rpmdsDNEVR(obsoletes)+2, ohNEVRA);
ohNEVRA = _free(ohNEVRA);
- removePackage(tsmem, oh, p);
+ removePackage(ts, oh, p);
}
}
mi = rpmdbFreeIterator(mi);
tsmem->orderAlloced * sizeof(*tsmem->order));
}
- p = rpmteNew(NULL, h, TR_ADDED, key, relocs, -1);
+ p = rpmteNew(ts, h, TR_ADDED, key, relocs);
tsmem->order[oc] = p;
if (oc == tsmem->orderCount) {
int rpmtsAddEraseElement(rpmts ts, Header h, int dboffset)
{
- return removePackage(rpmtsMembers(ts), h, NULL);
+ return removePackage(ts, h, NULL);
}
/**
rpmds obsoletes; /*!< Obsoletes: dependencies. */
rpmfi fi; /*!< File information. */
rpmps probs; /*!< Problems (relocations) */
+ rpmts ts; /*!< Parent transaction */
rpm_color_t color; /*!< Color bit(s) from package dependencies. */
rpm_loff_t pkgFileSize; /*!< No. of bytes in package file (approx). */
rpmfsFree(te->fs);
rpmpsFree(te->probs);
rpmteCleanDS(te);
+ rpmtsUnlink(te->ts);
memset(te, 0, sizeof(*te)); /* XXX trash and burn */
free(te);
return NULL;
}
-rpmte rpmteNew(const rpmts ts, Header h,
- rpmElementType type,
- fnpyKey key,
- rpmRelocation * relocs,
- int dboffset)
+rpmte rpmteNew(rpmts ts, Header h, rpmElementType type, fnpyKey key,
+ rpmRelocation * relocs)
{
rpmte p = xcalloc(1, sizeof(*p));
-
+ p->ts = rpmtsLink(ts);
p->type = type;
addTE(p, h, key, relocs);
switch (type) {
/** \ingroup rpmte
* Create a transaction element.
- * @param ts unused
+ * @param ts transaction set
* @param h header
* @param type TR_ADDED/TR_REMOVED
* @param key (TR_ADDED) package retrieval key (e.g. file name)
* @param relocs (TR_ADDED) package file relocations
- * @param dboffset unused
* @return new transaction element
*/
RPM_GNUC_INTERNAL
-rpmte rpmteNew(const rpmts ts, Header h, rpmElementType type,
- fnpyKey key,
- rpmRelocation * relocs,
- int dboffset);
+rpmte rpmteNew(rpmts ts, Header h, rpmElementType type, fnpyKey key,
+ rpmRelocation * relocs);
/** \ingroup rpmte
* Destroy a transaction element.