summaryrefslogtreecommitdiff
path: root/python/pkgsrcrecords.cc
diff options
context:
space:
mode:
Diffstat (limited to 'python/pkgsrcrecords.cc')
-rw-r--r--python/pkgsrcrecords.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/python/pkgsrcrecords.cc b/python/pkgsrcrecords.cc
index fb66284a..8eb9e5f3 100644
--- a/python/pkgsrcrecords.cc
+++ b/python/pkgsrcrecords.cc
@@ -26,6 +26,9 @@ struct PkgSrcRecordsStruct
List.ReadMainList();
Records = new pkgSrcRecords(List);
};
+ ~PkgSrcRecordsStruct() {
+ delete Records;
+ };
};
// PkgSrcRecords Class /*{{{*/
@@ -43,7 +46,8 @@ static PyObject *PkgSrcRecordsLookup(PyObject *Self,PyObject *Args)
Struct.Last = Struct.Records->Find(Name, false);
if (Struct.Last == 0) {
Struct.Records->Restart();
- return Py_None;
+ Py_INCREF(Py_None);
+ return HandleErrors(Py_None);
}
return Py_BuildValue("i", 1);
@@ -124,6 +128,11 @@ PyTypeObject PkgSrcRecordsType =
PyObject *GetPkgSrcRecords(PyObject *Self,PyObject *Args)
{
- return CppPyObject_NEW<PkgSrcRecordsStruct>(&PkgSrcRecordsType);
+ PyObject *Owner;
+ if (PyArg_ParseTuple(Args,"O!",&PkgCacheType,&Owner) == 0)
+ return 0;
+
+ return HandleErrors(CppOwnedPyObject_NEW<PkgSrcRecordsStruct>(Owner,
+ &PkgSrcRecordsType));
}