mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Add an improvement wrinkle to Neil Schemenauer's change to int_mul
(rev. 2.86). The other type is only disqualified from sq_repeat when it has the CHECKTYPES flag. This means that for extension types that only support "old-style" numeric ops, such as Zope 2's ExtensionClass, sq_repeat still trumps nb_multiply.
This commit is contained in:
parent
d0876b859d
commit
4571e9d42a
1 changed files with 4 additions and 2 deletions
|
@ -345,8 +345,10 @@ product that must have overflowed.
|
|||
#define USE_SQ_REPEAT(o) (!PyInt_Check(o) && \
|
||||
o->ob_type->tp_as_sequence && \
|
||||
o->ob_type->tp_as_sequence->sq_repeat && \
|
||||
(!o->ob_type->tp_as_number || \
|
||||
!o->ob_type->tp_as_number->nb_multiply))
|
||||
!(o->ob_type->tp_as_number && \
|
||||
o->ob_type->tp_flags & Py_TPFLAGS_CHECKTYPES && \
|
||||
o->ob_type->tp_as_number->nb_multiply))
|
||||
|
||||
static PyObject *
|
||||
int_mul(PyObject *v, PyObject *w)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue