@@ -784,8 +784,7 @@ mro_hierarchy(PyTypeObject *type, PyObject *temp)
784784 Py_XDECREF (old_mro );
785785
786786 // Avoid creating an empty list if there is no subclass
787- res = _PyType_HasSubclasses (type );
788- if (res > 0 ) {
787+ if (_PyType_HasSubclasses (type )) {
789788 /* Obtain a copy of subclasses list to iterate over.
790789
791790 Otherwise type->tp_subclasses might be altered
@@ -4314,7 +4313,6 @@ clear_static_tp_subclasses(PyTypeObject *type)
43144313{
43154314 PyObject * subclasses = lookup_subclasses (type );
43164315 if (subclasses == NULL ) {
4317- PyErr_Clear ();
43184316 return ;
43194317 }
43204318
@@ -4438,7 +4436,7 @@ _PyType_HasSubclasses(PyTypeObject *self)
44384436 return 0 ;
44394437 }
44404438 if (lookup_subclasses (self ) == NULL ) {
4441- return PyErr_Occurred () ? -1 : 0 ;
4439+ return 0 ;
44424440 }
44434441 return 1 ;
44444442}
@@ -4453,9 +4451,6 @@ _PyType_GetSubclasses(PyTypeObject *self)
44534451
44544452 PyObject * subclasses = lookup_subclasses (self ); // borrowed ref
44554453 if (subclasses == NULL ) {
4456- if (PyErr_Occurred ()) {
4457- return NULL ;
4458- }
44594454 return list ;
44604455 }
44614456 assert (PyDict_CheckExact (subclasses ));
@@ -6880,9 +6875,6 @@ add_subclass(PyTypeObject *base, PyTypeObject *type)
68806875 // arbitrary Python code and so modify base->tp_subclasses.
68816876 PyObject * subclasses = lookup_subclasses (base );
68826877 if (subclasses == NULL ) {
6883- if (PyErr_Occurred ()) {
6884- return -1 ;
6885- }
68866878 subclasses = init_subclasses (base );
68876879 if (subclasses == NULL ) {
68886880 Py_DECREF (key );
@@ -6958,7 +6950,6 @@ remove_subclass(PyTypeObject *base, PyTypeObject *type)
69586950{
69596951 PyObject * subclasses = lookup_subclasses (base ); // borrowed ref
69606952 if (subclasses == NULL ) {
6961- PyErr_Clear ();
69626953 return ;
69636954 }
69646955 assert (PyDict_CheckExact (subclasses ));
@@ -9047,7 +9038,7 @@ recurse_down_subclasses(PyTypeObject *type, PyObject *attr_name,
90479038 // tp_subclasses.
90489039 PyObject * subclasses = lookup_subclasses (type ); // borrowed ref
90499040 if (subclasses == NULL ) {
9050- return PyErr_Occurred () ? -1 : 0 ;
9041+ return 0 ;
90519042 }
90529043 assert (PyDict_CheckExact (subclasses ));
90539044
0 commit comments