ts->order = xrealloc(ts->order, sizeof(*ts->order) * ts->orderAlloced);
}
- p = rpmteNew(ts, h, TR_REMOVED, NULL, NULL, -1, depends);
+ p = rpmteNew(ts, h, TR_REMOVED, NULL, NULL, -1, RPMAL_NOMATCH);
+ rpmteSetDependsOn(p, depends);
+
ts->order[ts->orderCount] = p;
ts->orderCount++;
int osScore; /*!< (TR_ADDED) Os score. */
int isSource; /*!< (TR_ADDED) source rpm? */
+ rpmte depends; /*!< Package updated by this package (ERASE te) */
rpmte parent; /*!< Parent transaction element. */
int degree; /*!< No. of immediate children. */
int npreds; /*!< No. of predecessors. */
return opkgKey;
}
+void rpmteSetDependsOn(rpmte te, rpmte depends) {
+ te->depends = depends;
+}
-rpmalKey rpmteDependsOnKey(rpmte te)
+rpmte rpmteDependsOn(rpmte te)
{
- return (te != NULL && te->type == TR_REMOVED ? te->pkgKey : RPMAL_NOMATCH);
+ return te->depends;
}
int rpmteDBOffset(rpmte te)
rpmtsi pi = rpmtsiInit(ts);
int rc = 0;
rpmte p;
- rpmalKey key = rpmteAddedKey(te);
te->failed = 1;
/* XXX we can do a much better here than this... */
while ((p = rpmtsiNext(pi, TR_REMOVED))) {
- if (rpmteDependsOnKey(p) == key) {
+ if (rpmteDependsOn(p) == te) {
p->failed = 1;
}
}
rpmalKey npkgKey);
/** \ingroup rpmte
- * Retrieve dependent pkgKey of TR_REMOVED transaction element.
+ * Set dependent element of TR_REMOVED transaction element.
* @param te transaction element
- * @return dependent pkgKey
+ * @param depends dependent transaction element
*/
-rpmalKey rpmteDependsOnKey(rpmte te);
+void rpmteSetDependsOn(rpmte te, rpmte depends);
+
+/** \ingroup rpmte
+ * Retrieve dependent element of TR_REMOVED transaction element.
+ * @param te transaction element
+ * @return dependent transaction element
+ */
+rpmte rpmteDependsOn(rpmte te);
/** \ingroup rpmte
* Retrieve rpmdb instance of TR_REMOVED transaction element.