Eliminate dead-on-arrival code
This code was disabled in commit 9b94ae3dbc
about seven years ago before making a public appearance in any release.
That nobody has missed it in all this time tells me it's not that
necessary to have a python-level rpmtd object...
This commit is contained in:
parent
2efbe244cf
commit
71ff0b7e73
|
@ -61,161 +61,3 @@ PyObject *rpmtd_AsPyobj(rpmtd td)
|
|||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
#if 0
|
||||
struct rpmtdObject_s {
|
||||
PyObject_HEAD
|
||||
PyObject *md_dict;
|
||||
struct rpmtd_s td;
|
||||
};
|
||||
|
||||
/* string format should never fail but do regular repr just in case it does */
|
||||
static PyObject *rpmtd_str(rpmtdObject *s)
|
||||
{
|
||||
PyObject *res = NULL;
|
||||
char *str = rpmtdFormat(&(s->td), RPMTD_FORMAT_STRING, NULL);
|
||||
if (str) {
|
||||
res = PyBytes_FromString(str);
|
||||
free(str);
|
||||
} else {
|
||||
res = PyObject_Repr((PyObject *)s);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
static PyObject *rpmtd_iternext(rpmtdObject *s)
|
||||
{
|
||||
PyObject *next = NULL;
|
||||
|
||||
if (rpmtdNext(&(s->td)) >= 0) {
|
||||
Py_INCREF(s);
|
||||
next = (PyObject*) s;
|
||||
}
|
||||
return next;
|
||||
}
|
||||
|
||||
static PyObject *rpmtd_new(PyTypeObject * subtype, PyObject *args, PyObject *kwds)
|
||||
{
|
||||
rpmtdObject *s = NULL;
|
||||
Header h = NULL;
|
||||
rpmTagVal tag;
|
||||
int raw = 0;
|
||||
int noext = 0;
|
||||
headerGetFlags flags = (HEADERGET_EXT | HEADERGET_ALLOC);
|
||||
char *kwlist[] = { "header", "tag", "raw", "noext", NULL };
|
||||
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O&O&|ii", kwlist,
|
||||
hdrFromPyObject, &h, tagNumFromPyObject, &tag,
|
||||
&raw, &noext))
|
||||
return NULL;
|
||||
|
||||
if (raw) {
|
||||
flags |= HEADERGET_RAW;
|
||||
noext = 1; /* extensions with raw dont make sense */
|
||||
}
|
||||
if (noext) flags &= ~HEADERGET_EXT;
|
||||
|
||||
if ((s = (rpmtdObject *)subtype->tp_alloc(subtype, 0)) == NULL)
|
||||
return NULL;
|
||||
|
||||
headerGet(h, tag, &(s->td), flags);
|
||||
|
||||
return (PyObject *) s;
|
||||
}
|
||||
|
||||
static void rpmtd_dealloc(rpmtdObject * s)
|
||||
{
|
||||
rpmtdFreeData(&(s->td));
|
||||
Py_TYPE(s)->tp_free((PyObject *)s);
|
||||
}
|
||||
|
||||
static int rpmtd_length(rpmtdObject *s)
|
||||
{
|
||||
return rpmtdCount(&(s->td));
|
||||
}
|
||||
|
||||
static PyMappingMethods rpmtd_as_mapping = {
|
||||
(lenfunc) rpmtd_length, /* mp_length */
|
||||
};
|
||||
|
||||
static PyMemberDef rpmtd_members[] = {
|
||||
{ "type", T_INT, offsetof(rpmtdObject, td.type), READONLY, NULL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
static PyObject *rpmtd_get_tag(rpmtdObject *s, void *closure)
|
||||
{
|
||||
return Py_BuildValue("i", rpmtdTag(&(s->td)));
|
||||
}
|
||||
|
||||
static int rpmtd_set_tag(rpmtdObject *s, PyObject *value, void *closure)
|
||||
{
|
||||
rpmTagVal tag;
|
||||
if (!tagNumFromPyObject(value, &tag)) return -1;
|
||||
|
||||
if (!rpmtdSetTag(&(s->td), tag)) {
|
||||
PyErr_SetString(PyExc_ValueError, "incompatible tag for data");
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static PyGetSetDef rpmtd_getseters[] = {
|
||||
{ "tag", (getter)rpmtd_get_tag, (setter)rpmtd_set_tag, NULL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
PyTypeObject rpmtd_Type = {
|
||||
PyVarObject_HEAD_INIT(&PyType_Type, 0)
|
||||
"rpm.td", /* tp_name */
|
||||
sizeof(rpmtdObject), /* tp_size */
|
||||
0, /* tp_itemsize */
|
||||
(destructor) rpmtd_dealloc, /* tp_dealloc */
|
||||
0, /* tp_print */
|
||||
(getattrfunc)0, /* tp_getattr */
|
||||
0, /* tp_setattr */
|
||||
0, /* tp_compare */
|
||||
0, /* tp_repr */
|
||||
0, /* tp_as_number */
|
||||
0, /* tp_as_sequence */
|
||||
&rpmtd_as_mapping, /* tp_as_mapping */
|
||||
0, /* tp_hash */
|
||||
0, /* tp_call */
|
||||
(reprfunc)rpmtd_str, /* tp_str */
|
||||
PyObject_GenericGetAttr, /* tp_getattro */
|
||||
PyObject_GenericSetAttr, /* tp_setattro */
|
||||
0, /* tp_as_buffer */
|
||||
Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
|
||||
0, /* tp_doc */
|
||||
0, /* tp_traverse */
|
||||
0, /* tp_clear */
|
||||
0, /* tp_richcompare */
|
||||
0, /* tp_weaklistoffset */
|
||||
PyObject_SelfIter, /* tp_iter */
|
||||
(iternextfunc)rpmtd_iternext, /* tp_iternext */
|
||||
0, /* tp_methods */
|
||||
rpmtd_members, /* tp_members */
|
||||
rpmtd_getseters, /* tp_getset */
|
||||
0, /* tp_base */
|
||||
0, /* tp_dict */
|
||||
0, /* tp_descr_get */
|
||||
0, /* tp_descr_set */
|
||||
0, /* tp_dictoffset */
|
||||
0, /* tp_init */
|
||||
0, /* tp_alloc */
|
||||
rpmtd_new, /* tp_new */
|
||||
0, /* tp_free */
|
||||
0, /* tp_is_gc */
|
||||
};
|
||||
|
||||
int rpmtdFromPyObject(PyObject *obj, rpmtd *td)
|
||||
{
|
||||
if (rpmtdObject_Check(obj)) {
|
||||
*td = &(((rpmtdObject *)obj)->td);
|
||||
return 1;
|
||||
} else {
|
||||
PyErr_SetString(PyExc_TypeError, "rpm.td type expected");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue