py3.10-prep: reset the type cache after feature switching
authorChristian Tismer <tismer@stackless.com>
Sat, 8 May 2021 14:06:23 +0000 (16:06 +0200)
committerChristian Marillat <marillat@debian.org>
Fri, 17 Jun 2022 15:49:37 +0000 (16:49 +0100)
commita23108db608ec284ed6ee2103307c3e2f52452d8
treef9929419a69590ae458d6c37b70ca3e231ef5d6e
parentd6d8a640e809e887e42483bc014224ae3842c1d9
py3.10-prep: reset the type cache after feature switching

When using feature switching in Python 3.10, there were
funny effects where switched and un-switched versions appeared
to co-exist.

It turned out that we were hit by function caching that
is now implemented for the LOAD_ATTR opcode.

It was not known that caching would happen at all for
PySide classes because we don't use Py_TPFLAGS_VALID_VERSION_TAG.
But actually, this flag is used internally by Python to do some
optimizations, and we just have to notify the interpreter of
type changes by PyType_Modified().

(cherry picked from commit 3a2b7c6f88bba04d8b7ddb571163d23c15c36a4f)

Gbp-Pq: Name py3.10-prep-reset-the-type-cache-after-feature-switching.patch
sources/pyside2/libpyside/feature_select.cpp