@@ -784,8 +784,7 @@ mro_hierarchy(PyTypeObject *type, PyObject *temp)
784
784
Py_XDECREF (old_mro );
785
785
786
786
// Avoid creating an empty list if there is no subclass
787
- res = _PyType_HasSubclasses (type );
788
- if (res > 0 ) {
787
+ if (_PyType_HasSubclasses (type )) {
789
788
/* Obtain a copy of subclasses list to iterate over.
790
789
791
790
Otherwise type->tp_subclasses might be altered
@@ -4314,7 +4313,6 @@ clear_static_tp_subclasses(PyTypeObject *type)
4314
4313
{
4315
4314
PyObject * subclasses = lookup_subclasses (type );
4316
4315
if (subclasses == NULL ) {
4317
- PyErr_Clear ();
4318
4316
return ;
4319
4317
}
4320
4318
@@ -4438,7 +4436,7 @@ _PyType_HasSubclasses(PyTypeObject *self)
4438
4436
return 0 ;
4439
4437
}
4440
4438
if (lookup_subclasses (self ) == NULL ) {
4441
- return PyErr_Occurred () ? -1 : 0 ;
4439
+ return 0 ;
4442
4440
}
4443
4441
return 1 ;
4444
4442
}
@@ -4453,9 +4451,6 @@ _PyType_GetSubclasses(PyTypeObject *self)
4453
4451
4454
4452
PyObject * subclasses = lookup_subclasses (self ); // borrowed ref
4455
4453
if (subclasses == NULL ) {
4456
- if (PyErr_Occurred ()) {
4457
- return NULL ;
4458
- }
4459
4454
return list ;
4460
4455
}
4461
4456
assert (PyDict_CheckExact (subclasses ));
@@ -6880,9 +6875,6 @@ add_subclass(PyTypeObject *base, PyTypeObject *type)
6880
6875
// arbitrary Python code and so modify base->tp_subclasses.
6881
6876
PyObject * subclasses = lookup_subclasses (base );
6882
6877
if (subclasses == NULL ) {
6883
- if (PyErr_Occurred ()) {
6884
- return -1 ;
6885
- }
6886
6878
subclasses = init_subclasses (base );
6887
6879
if (subclasses == NULL ) {
6888
6880
Py_DECREF (key );
@@ -6958,7 +6950,6 @@ remove_subclass(PyTypeObject *base, PyTypeObject *type)
6958
6950
{
6959
6951
PyObject * subclasses = lookup_subclasses (base ); // borrowed ref
6960
6952
if (subclasses == NULL ) {
6961
- PyErr_Clear ();
6962
6953
return ;
6963
6954
}
6964
6955
assert (PyDict_CheckExact (subclasses ));
@@ -9047,7 +9038,7 @@ recurse_down_subclasses(PyTypeObject *type, PyObject *attr_name,
9047
9038
// tp_subclasses.
9048
9039
PyObject * subclasses = lookup_subclasses (type ); // borrowed ref
9049
9040
if (subclasses == NULL ) {
9050
- return PyErr_Occurred () ? -1 : 0 ;
9041
+ return 0 ;
9051
9042
}
9052
9043
assert (PyDict_CheckExact (subclasses ));
9053
9044
0 commit comments