From: Michael Tremer Date: Sat, 20 Jan 2018 14:17:59 +0000 (+0100) Subject: python: Drop reference to Pakfire from Request X-Git-Tag: 0.9.28~1285^2~1141 X-Git-Url: http://git.ipfire.org/?p=pakfire.git;a=commitdiff_plain;h=f68898268ef4474184f97901410cb25cf2f83a07 python: Drop reference to Pakfire from Request Signed-off-by: Michael Tremer --- diff --git a/src/_pakfire/request.c b/src/_pakfire/request.c index 13e4bfdd..24eba0ab 100644 --- a/src/_pakfire/request.c +++ b/src/_pakfire/request.c @@ -37,17 +37,14 @@ static PyObject* Request_new(PyTypeObject* type, PyObject* args, PyObject* kwds) RequestObject* self = (RequestObject *)type->tp_alloc(type, 0); if (self) { self->request = NULL; - self->pakfire = NULL; } return (PyObject *)self; } static void Request_dealloc(RequestObject* self) { - if (self->request) - pakfire_request_unref(self->request); + pakfire_request_unref(self->request); - Py_XDECREF(self->pakfire); Py_TYPE(self)->tp_free((PyObject *)self); } @@ -57,10 +54,9 @@ static int Request_init(RequestObject* self, PyObject* args, PyObject* kwds) { if (!PyArg_ParseTuple(args, "O!", &PakfireType, &pakfire)) return -1; - self->pakfire = pakfire; - Py_INCREF(self->pakfire); - - self->request = pakfire_request_create(self->pakfire->pakfire); + self->request = pakfire_request_create(pakfire->pakfire); + if (!self->request) + return -1; return 0; } diff --git a/src/_pakfire/request.h b/src/_pakfire/request.h index 17824821..763975cb 100644 --- a/src/_pakfire/request.h +++ b/src/_pakfire/request.h @@ -23,13 +23,10 @@ #include -#include - -#include "pakfire.h" +#include typedef struct { PyObject_HEAD - PakfireObject* pakfire; PakfireRequest request; } RequestObject; diff --git a/src/_pakfire/step.c b/src/_pakfire/step.c index 6ff0c8bb..c8cba327 100644 --- a/src/_pakfire/step.c +++ b/src/_pakfire/step.c @@ -99,8 +99,7 @@ static PyObject* Step_repr(StepObject* self) { static PyObject* Step_get_package(StepObject* self) { PakfirePackage package = pakfire_step_get_package(self->step); - PyObject* obj = new_package(self->transaction->request->pakfire, - pakfire_package_id(package)); + PyObject* obj = new_package(&PackageType, package); pakfire_package_unref(package); return obj; diff --git a/src/_pakfire/transaction.c b/src/_pakfire/transaction.c index ee394a89..3585ff8c 100644 --- a/src/_pakfire/transaction.c +++ b/src/_pakfire/transaction.c @@ -22,6 +22,7 @@ #include #include +#include #include #include "package.h"