diff options
author | Michael Schroeder <mls@suse.de> | 2009-07-08 18:10:00 +0200 |
---|---|---|
committer | Michael Schroeder <mls@suse.de> | 2009-07-08 18:10:00 +0200 |
commit | 4e77c970b9cd18fe4c696bdcfe6c4412bfddbfe4 (patch) | |
tree | 8aae2b1898e2379676b51fd15d6fb30107b33871 /src | |
parent | 6c8acb95c16cbc59b123a36ecff563b1d9269ce2 (diff) | |
download | libsolv-4e77c970b9cd18fe4c696bdcfe6c4412bfddbfe4.tar.gz libsolv-4e77c970b9cd18fe4c696bdcfe6c4412bfddbfe4.tar.bz2 libsolv-4e77c970b9cd18fe4c696bdcfe6c4412bfddbfe4.zip |
- add repo_free_repodata to remove a repodata from a repo
Diffstat (limited to 'src')
-rw-r--r-- | src/repo.c | 10 | ||||
-rw-r--r-- | src/repo.h | 1 |
2 files changed, 11 insertions, 0 deletions
@@ -987,6 +987,16 @@ repo_last_repodata(Repo *repo) } void +repo_free_repodata(Repo *repo, Repodata *data) +{ + int i = data - repo->repodata; + repodata_free(data); + if (i < repo->nrepodata - 1) + memmove(repo->repodata + i, repo->repodata + i + 1, (repo->nrepodata - 1 - i) * sizeof(Repodata)); + repo->nrepodata--; +} + +void repo_set_id(Repo *repo, Id p, Id keyname, Id id) { Repodata *data = repo_last_repodata(repo); @@ -174,6 +174,7 @@ typedef struct _KeyValue { Repodata *repo_add_repodata(Repo *repo, int localpool); Repodata *repo_last_repodata(Repo *repo); +void repo_free_repodata(Repo *repo, Repodata *data); void repo_search(Repo *repo, Id p, Id key, const char *match, int flags, int (*callback)(void *cbdata, Solvable *s, Repodata *data, Repokey *key, KeyValue *kv), void *cbdata); |