return oc;
}
+rpmal rpmtsCreateAl(rpmts ts, rpmElementTypes types)
+{
+ rpmal al = NULL;
+ if (ts) {
+ rpmte p;
+ rpmtsi pi;
+
+ al = rpmalCreate((rpmtsNElements(ts) / 4) + 1, rpmtsFlags(ts),
+ rpmtsColor(ts), rpmtsPrefColor(ts));
+ pi = rpmtsiInit(ts);
+ while ((p = rpmtsiNext(pi, types)))
+ rpmalAdd(al, p);
+ rpmtsiFree(pi);
+ }
+ return al;
+}
int rpmtsAddInstallElement(rpmts ts, Header h,
fnpyKey key, int upgrade, rpmRelocation * relocs)
rpmte * newOrder;
int newOrderCount = 0;
int rc;
- rpmal erasedPackages = rpmalCreate(5, rpmtsFlags(ts),
- rpmtsColor(ts), prefcolor);
+ rpmal erasedPackages;
scc SCCs;
int nelem = rpmtsNElements(ts);
tsortInfo sortInfo = xcalloc(nelem, sizeof(struct tsortInfo_s));
(void) rpmswEnter(rpmtsOp(ts, RPMTS_OP_ORDER), 0);
/* Create erased package index. */
- pi = rpmtsiInit(ts);
- while ((p = rpmtsiNext(pi, TR_REMOVED)) != NULL) {
- rpmalAdd(erasedPackages, p);
- }
- rpmtsiFree(pi);
+ erasedPackages = rpmtsCreateAl(ts, TR_REMOVED);
for (int i = 0; i < nelem; i++) {
sortInfo[i].te = tsmem->order[i];
RPM_GNUC_INTERNAL
tsMembers rpmtsMembers(rpmts ts);
+RPM_GNUC_INTERNAL
+rpmal rpmtsCreateAl(rpmts ts, rpmElementTypes types);
+
/* returns -1 for retry, 0 for ignore and 1 for not found */
RPM_GNUC_INTERNAL
int rpmtsSolve(rpmts ts, rpmds key);