void dirpool_make_dirtraverse(Dirpool *dp) { Id parent, i, *dirtraverse; if (!dp->ndirs) return; dp->dirs = solv_extend_resize(dp->dirs, dp->ndirs, sizeof(Id), DIR_BLOCK); dirtraverse = solv_calloc_block(dp->ndirs, sizeof(Id), DIR_BLOCK); for (i = 0; i < dp->ndirs; i++) { if (dp->dirs[i] > 0) continue; parent = -dp->dirs[i]; dirtraverse[i] = dirtraverse[parent]; dirtraverse[parent] = i + 1; } dp->dirtraverse = dirtraverse; }
void * repo_sidedata_create(Repo *repo, size_t size) { return solv_calloc_block(repo->end - repo->start, size, REPO_SIDEDATA_BLOCK); }