diff options
| author | Julian Andres Klode <jak@debian.org> | 2009-06-14 16:11:35 +0200 |
|---|---|---|
| committer | Julian Andres Klode <jak@debian.org> | 2009-06-14 16:11:35 +0200 |
| commit | dc6cdb234d24cbcc0cb9e5c93c01ac63898c3e40 (patch) | |
| tree | 5b75094132e6247f56a59c838a13564f31ac696a | |
| parent | 9a968fbe949fc6f13a8a7074197156f3682b7682 (diff) | |
| download | python-apt-dc6cdb234d24cbcc0cb9e5c93c01ac63898c3e40.tar.gz | |
python/cache.cc,depcache.cc: Do not delete the depcache and cache pointers.
Deleting the pointers caused a crash because those pointers will also be
deleted by closing the cache file.
| -rw-r--r-- | python/cache.cc | 4 | ||||
| -rw-r--r-- | python/depcache.cc | 3 |
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 |
