diff options
| author | Michael Vogt <michael.vogt@ubuntu.com> | 2009-03-19 13:39:56 +0100 |
|---|---|---|
| committer | Michael Vogt <michael.vogt@ubuntu.com> | 2009-03-19 13:39:56 +0100 |
| commit | 3e891e0fab308b7ccb4d315ac0b187676d374675 (patch) | |
| tree | a26d3e4a1c401e74ec0da1cf162cf3aaaf7e8150 /python/cache.cc | |
| parent | 85839f4f241c99f9e4ebb0a6a8847a2d433f1160 (diff) | |
| parent | e3133a7e09eae842be16eb64d7888c5751d72e75 (diff) | |
| download | python-apt-3e891e0fab308b7ccb4d315ac0b187676d374675.tar.gz | |
* apt/gtk/widgets.py:
- Handle older versions of python-gobject which do not ship glib
* apt/package.py: Introduce the Version class
- Deprecate Package.candidate*() and Package.installed*(), except for
installedFiles.
- Provide Version.get_source() (LP: #118788)
- Provide Package.versions (Closes: #513236)
* apt/progress/: New package, replaces apt.progress and apt.gtk
- apt/progress/gtk2.py: Moved here from apt/gtk/widgets.py
- apt/progress/__init__.py: Move here from apt/progress.py
* doc/source/*: Improve the documentation
- Document more attributes and functions of apt_pkg (they are all listed)
* aptsources/distro.py:
- use iso_3166.xml instead of iso_3166.tab
- fix incorrect indent
* debian/control:
- add Recommends to iso-codes (for iso_3166.xml)
* apt/package.py:
- make sure to set the defaulttimeout back to the
original value (in getChangelog(), LP: #314212)
* apt/cache.py:
- when setting a alternative rootdir, read the
config from it as well
* python/configuration.cc, python/apt_pkgmodule.cc:
- add apt_pkg.ReadConfigDir()
* python/cache.cc, tests/getcache_mem_corruption.py:
- test if progress objects have the right methods
and raise error if not (thanks to Emanuele Rocca)
closes: #497049
* apt/package.py:
- avoid uneeded interal references in the Package objects
* apt/__init__.py:
- remove the future warning
Diffstat (limited to 'python/cache.cc')
| -rw-r--r-- | python/cache.cc | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/python/cache.cc b/python/cache.cc index 1c59bece..0c59f561 100644 --- a/python/cache.cc +++ b/python/cache.cc @@ -936,14 +936,26 @@ PyObject *TmpGetCache(PyObject *Self,PyObject *Args) pkgCacheFile *Cache = new pkgCacheFile(); if(pyCallbackInst != 0) { + // sanity check for the progress object, see #497049 + if (PyObject_HasAttrString(pyCallbackInst, "done") != true) { + PyErr_SetString(PyExc_ValueError, + "OpProgress object must implement done()"); + return 0; + } + if (PyObject_HasAttrString(pyCallbackInst, "update") != true) { + PyErr_SetString(PyExc_ValueError, + "OpProgress object must implement update()"); + return 0; + } PyOpProgress progress; progress.setCallbackInst(pyCallbackInst); if (Cache->Open(progress,false) == false) - return HandleErrors(); - } else { + return HandleErrors(); + } + else { OpTextProgress Prog; if (Cache->Open(Prog,false) == false) - return HandleErrors(); + return HandleErrors(); } CppOwnedPyObject<pkgCacheFile*> *CacheFileObj = |
