diff --git a/Objects/abstract.c b/Objects/abstract.c index fcd86caca97..abfaa5ecfd8 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -813,9 +813,10 @@ PyNumber_InPlaceAdd(PyObject *v, PyObject *w) PyNumber_Add, 0) <= 0) return x; } - else if (HASINPLACE(v) + else if ((HASINPLACE(v) && ((v->ob_type->tp_as_sequence != NULL && - (f = v->ob_type->tp_as_sequence->sq_inplace_concat) != NULL)) + (f = v->ob_type->tp_as_sequence->sq_inplace_concat) + != NULL))) || (v->ob_type->tp_as_number != NULL && (f = v->ob_type->tp_as_number->nb_inplace_add) != NULL)) return (*f)(v, w);