static void rpmalMakeIndex(rpmal al) { availablePackage alp; int i; int providesCnt = 0; int fileCnt = 0; if (al == NULL || al->list == NULL) return; if (al->providesHash != NULL || al->fileHash != NULL) return; for (i = 0; i < al->size; i++) { alp = al->list + i; if (alp->provides != NULL) providesCnt += rpmdsCount(alp->provides); if (alp->fi != NULL) fileCnt += rpmfiFC(alp->fi); } al->providesHash = rpmalProvidesHashCreate(providesCnt/4+128, rstrhash, strcmp, NULL, NULL); al->fileHash = rpmalFileHashCreate(fileCnt/4+128, fileHash, fileCompare, NULL, NULL); for (i = 0; i < al->size; i++) { alp = al->list + i; rpmalAddProvides(al, i, alp->provides); rpmalAddFiles(al, i, alp->fi); } }
static void rpmalMakeFileIndex(rpmal al) { availablePackage alp; int i, fileCnt = 0; for (i = 0; i < al->size; i++) { alp = al->list + i; if (alp->fi != NULL) fileCnt += rpmfilesFC(alp->fi); } al->fileHash = rpmalFileHashCreate(fileCnt/4+128, sidHash, sidCmp, NULL, NULL); for (i = 0; i < al->size; i++) { alp = al->list + i; rpmalAddFiles(al, i, alp->fi); } }