aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/PySide2/glue/qtcore.cpp
diff options
context:
space:
mode:
authorChristian Tismer <tismer@stackless.com>2019-02-07 14:19:53 +0100
committerChristian Tismer <tismer@stackless.com>2019-02-07 21:07:27 +0000
commitb2a09c05e9cc2503f1609f720060558c0db2fe03 (patch)
tree662a156797ab038560d855483c88ff91cfaeedcd /sources/pyside2/PySide2/glue/qtcore.cpp
parentbf0c928b13fb2d512c6a80ba3d1d447a4daeaa75 (diff)
Fix Shiboken.ObjectType.__new__ for Python 2.7
type(QtWidgets.QWidget).__new__(type(QtWidgets.QWidget), "", (), {}) gave a problem in Python 2.7 after transition to PEP 384. The reason for the problem is a check in Python 2.7 that tries to find out if the function used to create a new object is a secure (builtin) one. Therefore, all new types that are generated by a Python function are filtered out. Unfortunately, Python 2.7 did that assuming that only Python classes are heap types. This is at least no longer true since Python 3 migrated to the new type API where all new types are heap types. The internal check was therefore changed to do the test for a builtin "new" function differently. But not in Python 2.7 . The workaround was to create the Shiboken.ObjectType as a heap type and then remove that flag from the type. This seems to have no bad effects, probably because the types did barely change when doing the transition. Anyway, I will stay tuned and watch out if this later creates a problem. Task-number: PYSIDE-816 Change-Id: Ia596716b0e5dff3f1a7155ab6765186ef0b9d179 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Diffstat (limited to 'sources/pyside2/PySide2/glue/qtcore.cpp')
0 files changed, 0 insertions, 0 deletions