(objobjargproc)0, /* mp_ass_subscript */
};
-static int rpmds_init(rpmdsObject * s, PyObject *args, PyObject *kwds)
-{
- s->active = 0;
- return 0;
-}
-
static int depflags(PyObject *o, rpmsenseFlags *senseFlags)
{
int ok = 0;
return ok;
}
-static PyObject * rpmds_new(PyTypeObject * subtype, PyObject *args, PyObject *kwds)
+static int rpmds_init(rpmdsObject *s, PyObject *args, PyObject *kwds)
{
PyObject *obj;
rpmTagVal tagN = RPMTAG_REQUIRENAME;
if (!PyArg_ParseTupleAndKeywords(args, kwds, "OO&:rpmds_new", kwlist,
&obj, tagNumFromPyObject, &tagN))
- return NULL;
+ return -1;
if (PyTuple_Check(obj)) {
const char *name = NULL;
ds = rpmdsSingle(tagN, name, evr, flags);
} else {
PyErr_SetString(PyExc_ValueError, "invalid dependency tuple");
- return NULL;
+ return -1;
}
} else if (hdrFromPyObject(obj, &h)) {
if (tagN == RPMTAG_NEVR) {
}
} else {
PyErr_SetString(PyExc_TypeError, "header or tuple expected");
- return NULL;
+ return -1;
}
-
- return rpmds_Wrap(subtype, ds);
+
+ rpmdsFree(s->ds);
+ s->ds = ds;
+ s->active = 0;
+
+ return 0;
}
static char rpmds_doc[] =
0, /* tp_dictoffset */
(initproc) rpmds_init, /* tp_init */
0, /* tp_alloc */
- (newfunc) rpmds_new, /* tp_new */
+ PyType_GenericNew, /* tp_new */
0, /* tp_free */
0, /* tp_is_gc */
};