summaryrefslogtreecommitdiff
path: root/python/progress.cc
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2009-07-16 21:39:31 +0200
committerJulian Andres Klode <jak@debian.org>2009-07-16 21:39:31 +0200
commitc7d7fbb650c8ff7c0e52c95723e1e65e295d55cf (patch)
tree42c752f0ca0e446d44e0de23ed382cbf94f42ae6 /python/progress.cc
parent7f861d478db844037d14aeb423eaab88a0a47716 (diff)
downloadpython-apt-c7d7fbb650c8ff7c0e52c95723e1e65e295d55cf.tar.gz
python/progress.cc: Set members directly, without using Python.
Diffstat (limited to 'python/progress.cc')
-rw-r--r--python/progress.cc48
1 files changed, 25 insertions, 23 deletions
diff --git a/python/progress.cc b/python/progress.cc
index 450b7654..123a1805 100644
--- a/python/progress.cc
+++ b/python/progress.cc
@@ -65,33 +65,35 @@ void PyOpProgress::Update()
return;
- PyObject *o;
- o = Py_BuildValue("s", Op.c_str());
- PyObject_SetAttrString(callbackInst, "op", o);
- Py_XDECREF(o);
- o = Py_BuildValue("s", SubOp.c_str());
- if(PyObject_HasAttrString(callbackInst, "sub_op"))
- PyObject_SetAttrString(callbackInst, "sub_op", o);
- else
- PyObject_SetAttrString(callbackInst, "subOp", o);
- Py_XDECREF(o);
- o = Py_BuildValue("b", MajorChange);
- if(PyObject_HasAttrString(callbackInst, "major_change"))
- PyObject_SetAttrString(callbackInst, "major_change", o);
- else
- PyObject_SetAttrString(callbackInst, "majorChange", o);
- Py_XDECREF(o);
-
-
-
-
if (PyObject_TypeCheck(callbackInst, &PyOpProgress_Type)) {
- o = Py_BuildValue("f", Percent);
- PyObject_SetAttrString(callbackInst, "percent", o);
+ PyOpProgressObject *obj = (PyOpProgressObject *)callbackInst;
+ obj->op = CppPyString(Op);
+ obj->subop = CppPyString(SubOp);
+#ifdef T_BOOL
+ obj->major_change = (char)(MajorChange);
+#else
+ obj->major_change = (int)(MajorChange);
+#endif
+ obj->percent = Percent;
RunSimpleCallback("update");
- Py_XDECREF(o);
}
else {
+ PyObject *o;
+ o = Py_BuildValue("s", Op.c_str());
+ PyObject_SetAttrString(callbackInst, "op", o);
+ Py_XDECREF(o);
+ o = Py_BuildValue("s", SubOp.c_str());
+ if(PyObject_HasAttrString(callbackInst, "sub_op"))
+ PyObject_SetAttrString(callbackInst, "sub_op", o);
+ else
+ PyObject_SetAttrString(callbackInst, "subOp", o);
+ Py_XDECREF(o);
+ o = Py_BuildValue("b", MajorChange);
+ if(PyObject_HasAttrString(callbackInst, "major_change"))
+ PyObject_SetAttrString(callbackInst, "major_change", o);
+ else
+ PyObject_SetAttrString(callbackInst, "majorChange", o);
+ Py_XDECREF(o);
PyObject *arglist = Py_BuildValue("(f)", Percent);
RunSimpleCallback("update", arglist);
}