From ceb91ee51edcdc2017526184035a3731394e003c Mon Sep 17 00:00:00 2001 From: Michael Schroeder Date: Mon, 28 Mar 2011 12:02:22 +0200 Subject: [PATCH] - save tmpspace when calling the repodata load callback --- src/repodata.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/repodata.c b/src/repodata.c index df120ac5..4246ee3c 100644 --- a/src/repodata.c +++ b/src/repodata.c @@ -2783,7 +2783,8 @@ repodata_load_stub(Repodata *data) { Repo *repo = data->repo; Pool *pool = repo->pool; - int r; + int r, i; + struct _Pool_tmpspace oldtmpspace; if (!pool->loadcallback) { @@ -2791,7 +2792,18 @@ repodata_load_stub(Repodata *data) return; } data->state = REPODATA_LOADING; + + /* save tmp space */ + oldtmpspace = pool->tmpspace; + memset(&pool->tmpspace, 0, sizeof(pool->tmpspace)); + r = pool->loadcallback(pool, data, pool->loadcallbackdata); + + /* restore tmp space */ + for (i = 0; i < POOL_TMPSPACEBUF; i++) + sat_free(pool->tmpspace.buf[i]); + pool->tmpspace = oldtmpspace; + data->state = r ? REPODATA_AVAILABLE : REPODATA_ERROR; } -- 2.47.2