- descrobject.c:descr_check(): only believe None means the same as
NULL if the type given is None's type.
- typeobject.c:wrap_descr_get(): don't "conventiently" default an
absent type to the type of the object argument. Let the called
function figure it out.
static int
descr_check(PyDescrObject *descr, PyObject *obj, PyTypeObject *type,
- PyObject **pres)
+ PyObject **pres)
{
- if (obj == NULL || obj == Py_None) {
+ if (obj == NULL || (obj == Py_None && type != Py_None->ob_type)) {
Py_INCREF(descr);
*pres = (PyObject *)descr;
return 1;
if (!PyArg_ParseTuple(args, "O|O", &obj, &type))
return NULL;
- if (type == NULL)
- type = (PyObject *)obj->ob_type;
return (*func)(self, obj, type);
}