Add a helper function for turning rpm problem set into python list
authorPanu Matilainen <pmatilai@redhat.com>
Sat, 13 Mar 2010 10:28:26 +0000 (12:28 +0200)
committerPanu Matilainen <pmatilai@redhat.com>
Sat, 13 Mar 2010 10:28:26 +0000 (12:28 +0200)
python/rpmps-py.c
python/rpmps-py.h
python/rpmts-py.c

index 083e513..c003dd8 100644 (file)
@@ -125,3 +125,15 @@ PyObject *rpmprob_Wrap(PyTypeObject *subtype, rpmProblem prob)
     return (PyObject *) s;
 }
 
+PyObject *rpmps_AsList(rpmps ps)
+{
+    PyObject *problems = PyList_New(0);
+    rpmpsi psi = rpmpsInitIterator(ps);
+    while (rpmpsNextIterator(psi) >= 0) {
+        PyObject *prob = rpmprob_Wrap(&rpmProblem_Type, rpmpsGetProblem(psi));
+        PyList_Append(problems, prob);
+        Py_DECREF(prob);
+    }
+    rpmpsFreeIterator(psi);
+    return problems;
+}
index 8cebb77..4d7efc8 100644 (file)
@@ -11,4 +11,6 @@ extern PyTypeObject rpmProblem_Type;
 
 PyObject * rpmprob_Wrap(PyTypeObject *subtype, rpmProblem prob);
 
+PyObject *rpmps_AsList(rpmps ps);
+
 #endif
index 72c039b..bc010ec 100644 (file)
@@ -517,15 +517,8 @@ rpmtsCallback(const void * hd, const rpmCallbackType what,
 static PyObject *
 rpmts_Problems(rpmtsObject * s)
 {
-    PyObject *problems = PyList_New(0);
     rpmps ps = rpmtsProblems(s->ts);
-    rpmpsi psi = rpmpsInitIterator(ps);
-    while (rpmpsNextIterator(psi) >= 0) {
-       PyObject *prob = rpmprob_Wrap(&rpmProblem_Type, rpmpsGetProblem(psi));
-       PyList_Append(problems, prob);
-       Py_DECREF(prob);
-    }
-    rpmpsFreeIterator(psi);
+    PyObject *problems = rpmps_AsList(ps);
     rpmpsFree(ps);
     return problems;
 }