int i;
pool_freewhatprovides(pool);
- if (repo == pool->installed)
- pool->installed = 0;
-
if (reuseids && repo->end == pool->nsolvables)
{
/* it's ok to reuse the ids. As this is the last repo, we can
Pool *pool = repo->pool;
int i;
+ if (repo == pool->installed)
+ pool->installed = 0;
repo_empty(repo, reuseids);
for (i = 0; i < pool->nrepos; i++) /* find repo in pool */
if (pool->repos[i] == repo)
/* hack: we mis-use REPO_REUSE_REPODATA here */
if (!(flags & REPO_REUSE_REPODATA))
{
+ /* save state and loadcallback */
+ void (*loadcallback)(Repodata *) = data->loadcallback;
repodata_freedata(data);
repodata_initdata(data, repo, (flags & REPO_LOCALPOOL) ? 1 : 0);
+ data->state = REPODATA_LOADING;
+ data->loadcallback = loadcallback;
}
return data;
}
}
data->state = REPODATA_LOADING;
r = pool->loadcallback(pool, data, pool->loadcallbackdata);
- if (!r)
- data->state = REPODATA_ERROR;
+ data->state = r ? REPODATA_AVAILABLE : REPODATA_ERROR;
}
void