]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
- add repodata_empty() function
authorMichael Schroeder <mls@suse.de>
Tue, 1 Mar 2011 16:10:30 +0000 (17:10 +0100)
committerMichael Schroeder <mls@suse.de>
Tue, 1 Mar 2011 16:10:30 +0000 (17:10 +0100)
src/repo.c
src/repodata.c
src/repodata.h

index fa7f7448ce1502b73a959a9d0b686fa3e6e0327e..265f880946796f03174439115ee1263d4a3006ab 100644 (file)
@@ -1032,14 +1032,7 @@ repo_add_repodata(Repo *repo, int flags)
            /* 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! */
index e1cbb9932db05ae2ffb0f1a5613d4efce15c13c0..958152d3927be6f9e7968272235afcdd0ac8081c 100644 (file)
@@ -120,6 +120,17 @@ repodata_free(Repodata *data)
   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
index 1b7ebe0a7be217720a900298bda2da0da025dc8f..589edd796c751aeb2a59d2f87d8b7879f6fed101 100644 (file)
@@ -120,6 +120,7 @@ void repodata_freedata(Repodata *data);
 
 Repodata *repodata_create(struct _Repo *repo, int localpool);
 void repodata_free(Repodata *data);
+void repodata_empty(Repodata *data, int localpool);
 
 
 /*