14 #define _RPMDS_INTERNAL
97 GENfree(availablePackage)
98 GENfree(availableIndexEntry)
133 availableIndex ai = &al->
index;
143 availablePackage alp;
146 if ((alp = al->
list) != NULL)
147 for (i = 0; i < al->
size; i++, alp++) {
150 (void)rpmbfFree(alp->
bf);
168 if (_rpmalPool == NULL) {
174 memset(((
char *)al)+
sizeof(al->
_item), 0,
sizeof(*al)-
sizeof(al->
_item));
181 availableIndex ai = &al->
index;
197 availablePackage alp;
199 if (al == NULL || al->
list == NULL)
202 alp = al->
list + pkgNum;
206 (void)rpmbfFree(alp->
bf);
209 memset(alp, 0,
sizeof(*alp));
218 availablePackage alp;
226 if (pkgNum >= 0 && pkgNum < al->size) {
236 if (al->
list == NULL)
239 alp = al->
list + pkgNum;
251 assert(((
alNum)(alp - al->
list)) == pkgNum);
261 static int indexcmp(
const void * one,
const void * two)
282 availableIndex ai = &al->
index;
283 availableIndexEntry aie;
286 if (provides == NULL || pkgNum < 0 || pkgNum >= al->
size)
288 if (ai->
index == NULL || ai->
k < 0 || ai->
k >= ai->
size)
294 if ((Name = provides->N[provides->i]) == NULL)
299 if (tscolor && dscolor && !(tscolor & dscolor))
309 aie->
entryLen = (
unsigned short)strlen(Name);
313 assert(ix < 0x10000);
323 availablePackage alp;
326 if (al == NULL || al->
list == NULL)
return;
330 for (i = 0; i < al->
size; i++) {
335 if (ai->
size == 0)
return;
339 for (i = 0; i < al->
size; i++) {
360 if (al == NULL || (fn =
rpmdsN(ds)) == NULL || *fn !=
'/')
364 if (al->
list != NULL)
365 for (i = 0; i < al->
size; i++) {
366 availablePackage alp = al->
list + i;
368 if (!rpmbfChk(alp->
bf, fn, nfn))
375 ret[found] = alp->
key;
394 availableIndexEntry needle;
395 availableIndexEntry match;
399 availablePackage alp;
404 if (al == NULL || ds == NULL || (KName =
rpmdsN(ds)) == NULL)
410 if (ret != NULL && *ret != NULL)
421 memset(
alloca(
sizeof(*needle)), 0,
sizeof(*needle));
423 needle->
entry = KName;
436 if (al->
list != NULL)
437 for (ret = NULL, found = 0;
445 switch (match->
type) {
461 ret[found] = alp->
key;