summaryrefslogtreecommitdiff
path: root/python/apt_pkgmodule.cc
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2009-06-09 17:29:57 +0200
committerJulian Andres Klode <jak@debian.org>2009-06-09 17:29:57 +0200
commitfc874b8b9507401a232d42fa7936148f76b0a1e2 (patch)
treea1245d363d3439afa74c9d1a8ec2949622076ae7 /python/apt_pkgmodule.cc
parentb7f2997fc11283801260f54e9d84610265279aa0 (diff)
downloadpython-apt-fc874b8b9507401a232d42fa7936148f76b0a1e2.tar.gz
python/cache.cc: Fix segfaults using the new allocation methods.
We switched to using tp_alloc() to create new objects. Some types had no tp_flags set and were not initialized using PyType_Ready, causing tp_alloc (PyType_GenericAlloc) to crash.
Diffstat (limited to 'python/apt_pkgmodule.cc')
-rw-r--r--python/apt_pkgmodule.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/python/apt_pkgmodule.cc b/python/apt_pkgmodule.cc
index 085d12f4..95b72de4 100644
--- a/python/apt_pkgmodule.cc
+++ b/python/apt_pkgmodule.cc
@@ -547,6 +547,7 @@ extern "C" void initapt_pkg()
// Finalize our types to add slots, etc.
if (PyType_Ready(&ConfigurationPtrType) == -1) INIT_ERROR;
if (PyType_Ready(&ConfigurationSubType) == -1) INIT_ERROR;
+ if (PyType_Ready(&PkgCacheFileType) == -1) INIT_ERROR;
// Initialize the module
#if PY_MAJOR_VERSION >= 3
@@ -577,8 +578,8 @@ extern "C" void initapt_pkg()
ADDTYPE(Module,"Dependency",&DependencyType); // NO __new__()
ADDTYPE(Module,"Description",&DescriptionType); // NO __new__()
ADDTYPE(Module,"PackageFile",&PackageFileType); // NO __new__()
- //ADDTYPE(Module,"PackageList",&PkgListType); // NO __new__(), internal
- //ADDTYPE(Module,"DependencyList",&RDepListType); // NO __new__(), internal
+ ADDTYPE(Module,"PackageList",&PkgListType); // NO __new__(), internal
+ ADDTYPE(Module,"DependencyList",&RDepListType); // NO __new__(), internal
ADDTYPE(Module,"Package",&PackageType); // NO __new__()
ADDTYPE(Module,"Version",&VersionType); // NO __new__()
/* ============================ cdrom.cc ============================ */