rpmpsi rpmpsFreeIterator(rpmpsi psi) { if (psi != NULL) { rpmpsUnlink(psi->ps); free(psi); } return NULL; }
rpmpsi rpmpsFreeIterator(rpmpsi psi) { if (psi != NULL) { rpmpsUnlink(psi->ps, RPMDBG_M("rpmpsFreeIterator")); free(psi); psi = NULL; } return psi; }
rpmps rpmpsFree(rpmps ps) { if (ps == NULL) return NULL; if (ps->nrefs > 1) { return rpmpsUnlink(ps); } if (ps->probs) { rpmpsi psi = rpmpsInitIterator(ps); while (rpmpsNextIterator(psi) >= 0) { rpmProblemFree(rpmpsGetProblem(psi)); } rpmpsFreeIterator(psi); ps->probs = _free(ps->probs); } ps = _free(ps); return NULL; }