Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37732948
en ru br
Репозитории ALT

Группа :: Development/Python3
Пакет: python3-module-PySide2

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: py3.10-prep-reset-the-type-cache-after-feature-switching.patch
Скачать


From: Christian Tismer <tismer@stackless.com>
Date: Sat, 8 May 2021 16:06:23 +0200
Subject: 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)
---
 sources/pyside2/libpyside/feature_select.cpp | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/sources/pyside2/libpyside/feature_select.cpp b/sources/pyside2/libpyside/feature_select.cpp
index 6a21d16..3da7dde 100644
--- a/sources/pyside2/libpyside/feature_select.cpp
+++ b/sources/pyside2/libpyside/feature_select.cpp
@@ -405,6 +405,8 @@ static inline PyObject *SelectFeatureSet(PyTypeObject *type)
             if (!SelectFeatureSetSubtype(sub_type, select_id))
                 break;
         }
+        // PYSIDE-1436: Clear all caches for the type and subtypes.
+        PyType_Modified(type);
     }
     return type->tp_dict;
 }
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin