/* re-init */
/* 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;
- }
+ repodata_empty(data, (flags & REPO_LOCALPOOL) ? 1 : 0);
return data;
}
return 0; /* must not create a new repodata! */
repo->nrepodata--;
}
+void
+repodata_empty(Repodata *data, int localpool)
+{
+ void (*loadcallback)(Repodata *) = data->loadcallback;
+ int state = data->state;
+ repodata_freedata(data);
+ repodata_initdata(data, data->repo, localpool);
+ data->state = state;
+ data->loadcallback = loadcallback;
+}
+
/***************************************************************
* key pool management
Repodata *repodata_create(struct _Repo *repo, int localpool);
void repodata_free(Repodata *data);
+void repodata_empty(Repodata *data, int localpool);
/*