fix handleDbResult so that it will return an empty list when nothing matches instead of delivering an exception

CVS patchset: 4382
CVS date: 2000/12/29 19:25:38
This commit is contained in:
gafton 2000-12-29 19:25:38 +00:00
parent bc5ea0ac35
commit aff441656c
2 changed files with 11 additions and 9 deletions

5
python/ChangeLog Normal file
View File

@ -0,0 +1,5 @@
2000-12-29 Cristian Gafton <gafton@redhat.com>
* rpmmodule.c(handleDbResult): don't freak out when nothing matches;
return empty list

View File

@ -890,19 +890,16 @@ static PyObject * rpmdbNext(rpmdbObject * s, PyObject * args) {
static PyObject * handleDbResult(rpmdbMatchIterator mi) {
PyObject * list, *o;
if (mi == NULL) {
PyErr_SetString(pyrpmError, "error reading from database");
return NULL;
}
list = PyList_New(0);
/* XXX FIXME: unnecessary header mallocs are side effect here */
while (rpmdbNextIterator(mi)) {
PyList_Append(list, o=PyInt_FromLong(rpmdbGetIteratorOffset(mi)));
Py_DECREF(o);
if (mi != NULL) {
while (rpmdbNextIterator(mi)) {
PyList_Append(list, o=PyInt_FromLong(rpmdbGetIteratorOffset(mi)));
Py_DECREF(o);
}
rpmdbFreeIterator(mi);
}
rpmdbFreeIterator(mi);
return list;
}