*/
Repo *
-pool_addrepo_empty(Pool *pool)
+repo_create(Pool *pool, const char *name)
{
Repo *repo;
repo = (Repo *)xcalloc(1, sizeof(*repo));
pool->repos = (Repo **)xrealloc(pool->repos, (pool->nrepos + 1) * sizeof(Repo *));
pool->repos[pool->nrepos++] = repo;
- repo->name = "empty";
+ repo->name = name ? strdup(name) : 0;
repo->pool = pool;
repo->start = pool->nsolvables;
repo->nsolvables = 0;
return repo;
}
+static void
+repo_freedata(Repo *repo)
+{
+ xfree(repo->idarraydata);
+ xfree(repo->rpmdbid);
+ xfree((char *)repo->name);
+ xfree(repo);
+}
+
/*
* add Id to repo
* olddeps = old array to extend
*/
void
-pool_freerepo(Pool *pool, Repo *repo)
+repo_free(Repo *repo)
{
+ Pool *pool = repo->pool;
int i, nsolvables;
pool_freewhatprovides(pool);
pool->repos[i]->start -= nsolvables; /* adapt start offset of remaining repos */
}
pool->nrepos = i;
+ repo_freedata(repo);
+}
- xfree(repo->idarraydata);
- xfree(repo->rpmdbid);
- xfree(repo);
+void
+pool_freeallrepos(Pool *pool)
+{
+ int i;
+ for (i = 0; i < pool->nrepos; i++)
+ repo_freedata(pool->repos[i]);
+ pool->repos = xfree(pool->repos);
+ pool->nrepos = 0;
}
Offset