summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--python/cache.cc4
-rw-r--r--python/depcache.cc3
2 files changed, 5 insertions, 2 deletions
diff --git a/python/cache.cc b/python/cache.cc
index 22ed9ecc..80a7a8a5 100644
--- a/python/cache.cc
+++ b/python/cache.cc
@@ -247,7 +247,9 @@ void PkgCacheFileDealloc(PyObject *Self)
PyObject *CacheFilePy = GetOwner<pkgCache*>(Self);
pkgCacheFile *CacheF = GetCpp<pkgCacheFile*>(CacheFilePy);
CacheF->Close();
- CppOwnedDeallocPtr<pkgCache *>(Self);
+ // Do not delete the pointer here, because it has already been deleted by
+ // closing the cache file.
+ CppOwnedDealloc<pkgCache *>(Self);
}
static PyObject *PkgCacheNew(PyTypeObject *type,PyObject *Args,PyObject *kwds)
diff --git a/python/depcache.cc b/python/depcache.cc
index 9bbda527..288eb0b0 100644
--- a/python/depcache.cc
+++ b/python/depcache.cc
@@ -660,7 +660,8 @@ PyTypeObject PkgDepCacheType =
sizeof(CppOwnedPyObject<pkgDepCache *>), // tp_basicsize
0, // tp_itemsize
// Methods
- CppOwnedDeallocPtr<pkgDepCache *>, // tp_dealloc
+ // Not ..Ptr, because the pkgDepCache pointer is managed by the CacheFile.
+ CppOwnedDealloc<pkgDepCache *>, // tp_dealloc
0, // tp_print
0, // tp_getattr
0, // tp_setattr