diff options
| author | Julian Andres Klode <jak@debian.org> | 2009-07-12 13:26:02 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2009-07-12 13:26:02 +0200 |
| commit | c45715cf0269bcef053025f01a1956b75bf3c859 (patch) | |
| tree | a9c1715827cfcc97ced4c04213b8a29fa47fdb82 /python/metaindex.cc | |
| parent | 4eb6bf32792b37d97f7d0d50bf2669b04fa77583 (diff) | |
| download | python-apt-c45715cf0269bcef053025f01a1956b75bf3c859.tar.gz | |
python/metaindex.cc: Fix deletion of the IndexFile objects in MetaIndex.index_files
First of all, make the objects mortal by decreasing their refcount after
adding them to the list. Secondly, make the objects owned by MetaIndex
and thirdly, set NoDelete on them, because they are managed by metaIndex.
Diffstat (limited to 'python/metaindex.cc')
| -rw-r--r-- | python/metaindex.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/python/metaindex.cc b/python/metaindex.cc index 87b1e59a..195394d6 100644 --- a/python/metaindex.cc +++ b/python/metaindex.cc @@ -37,9 +37,12 @@ static PyObject *MetaIndexGetIndexFiles(PyObject *Self,void*) { for (vector<pkgIndexFile *>::const_iterator I = indexFiles->begin(); I != indexFiles->end(); I++) { - PyObject *Obj; - Obj = CppPyObject_NEW<pkgIndexFile*>(&PackageIndexFileType,*I); + CppOwnedPyObject<pkgIndexFile*> *Obj; + Obj = CppOwnedPyObject_NEW<pkgIndexFile*>(Self, &PackageIndexFileType,*I); + // Do not delete pkgIndexFile*, they are managed by metaIndex. + Obj->NoDelete = true; PyList_Append(List,Obj); + Py_DECREF(Obj); } return List; } |
