From: Michael Schroeder Date: Fri, 25 Feb 2011 10:31:41 +0000 (+0100) Subject: - fix some memory leaks X-Git-Tag: BASE-SuSE-Code-12_1-Branch~129 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99ea3b40365e8633a02fd28ebddb5514e4cbdb00;p=thirdparty%2Flibsolv.git - fix some memory leaks --- diff --git a/examples/solv.i b/examples/solv.i index c7ef48cc..325b42d3 100644 --- a/examples/solv.i +++ b/examples/solv.i @@ -386,6 +386,7 @@ typedef struct { void set_debuglevel(int level) { pool_setdebuglevel($self, level); } +#if defined(SWIGPYTHON) %{ SWIGINTERN int loadcallback(Pool *pool, Repodata *data, void *d) { XRepodata *xd = new_XRepodata(data->repo, data - data->repo->repodata); @@ -412,6 +413,13 @@ typedef struct { Py_INCREF(callable); pool_setloadcallback($self, loadcallback, callable); } +#endif + void free() { +#if defined(SWIGPYTHON) + Pool_set_loadcallback($self, 0); +#endif + pool_free($self); + } Id str2id(const char *str, int create=1) { return str2id($self, str, create); } @@ -470,6 +478,7 @@ typedef struct { void createwhatprovides() { pool_createwhatprovides($self); } + %newobject solvables; Pool_solvable_iterator * const solvables; %{ SWIGINTERN Pool_solvable_iterator * Pool_solvables_get(Pool *pool) { @@ -480,6 +489,7 @@ typedef struct { return s; } %} + %newobject repos; Pool_repo_iterator * const repos; %{ SWIGINTERN Pool_repo_iterator * Pool_repos_get(Pool *pool) { @@ -705,6 +715,7 @@ typedef struct { } ~Dataiterator() { dataiterator_free($self); + sat_free($self); } Dataiterator *__iter__() { return $self;