summaryrefslogtreecommitdiff
path: root/python/progress.cc
diff options
context:
space:
mode:
Diffstat (limited to 'python/progress.cc')
-rw-r--r--python/progress.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/python/progress.cc b/python/progress.cc
index 123a1805..b19ab0c7 100644
--- a/python/progress.cc
+++ b/python/progress.cc
@@ -518,10 +518,14 @@ pkgPackageManager::OrderResult PyInstallProgress::Run(pkgPackageManager *pm)
void PyCdromProgress::Update(string text, int current)
{
PyObject *arglist = Py_BuildValue("(si)", text.c_str(), current);
-
- PyObject *o = Py_BuildValue("i", totalSteps);
- PyObject_SetAttrString(callbackInst, "totalSteps", o);
- Py_XDECREF(o);
+ if (PyObject_TypeCheck(callbackInst, &PyCdromProgress_Type)) {
+ ((PyCdromProgressObject *)callbackInst)->total_steps = totalSteps;
+ }
+ else {
+ PyObject *o = Py_BuildValue("i", totalSteps);
+ PyObject_SetAttrString(callbackInst, "totalSteps", o);
+ Py_XDECREF(o);
+ }
RunSimpleCallback("update", arglist);
}