diff options
Diffstat (limited to 'Objects/object.c')
-rw-r--r-- | Objects/object.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Objects/object.c b/Objects/object.c index 10877b5..bf8056c 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1362,7 +1362,8 @@ PyObject_GenericGetAttr(PyObject *obj, PyObject *name) } f = NULL; - if (descr != NULL) { + if (descr != NULL && + PyType_HasFeature(descr->ob_type, Py_TPFLAGS_HAVE_CLASS)) { f = descr->ob_type->tp_descr_get; if (f != NULL && PyDescr_IsData(descr)) { res = f(descr, obj, (PyObject *)obj->ob_type); @@ -1454,7 +1455,8 @@ PyObject_GenericSetAttr(PyObject *obj, PyObject *name, PyObject *value) descr = _PyType_Lookup(tp, name); f = NULL; - if (descr != NULL) { + if (descr != NULL && + PyType_HasFeature(descr->ob_type, Py_TPFLAGS_HAVE_CLASS)) { f = descr->ob_type->tp_descr_set; if (f != NULL && PyDescr_IsData(descr)) { res = f(descr, obj, value); |