| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| | |
Change-Id: I8328cd0fdd469e1ec14ed6a487f03da0373ef32e
|
| |
| |
| |
| |
| | |
Change-Id: Iff05110dbec9c6d09ca34526e70008d0c3a9c1c9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Id0650ec2b46f3c67eb2c9b400f5b31aab98c3c58
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This function will allow users to convert and load .ui files
at runtime.
A test case was added.
Change-Id: I64a220a07955e560f61f823d0ee2c3c9ff2209c1
Fixes: PYSIDE-1223
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The limited API has always been tested in COIN.
Not so last time when I checked this.
I had a check-in which defined PyImport_GetModule for Python
versions < 3.7, but did not see that this function does not
exist when the Py_LIMITED_API is defined.
The check-in should therefore have been broken, but it went
through. That means that the Py_LIMITED_API is not tested,
at least since commit c82ec2bc on 2020-05-18.
Should we change the default, and how?
Change-Id: I69ffaa1edeba9d7408c67f2cface8c4113ffcbe9
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
sbkenum had a wrong deallocator and some other errors.
Found while developing pickling on enums.
At the same time, a wrong Python 3.8 condition was removed.
There are currently no additional bugs in Python 2.7, 3.7 and 3.8.
Change-Id: I4abccf3b84a3738bba7781ea3dfd00e98ae63ea1
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Pickling for types exists in most cases.
Pickling of Qt Enum objects works fine.
Pickling of Qt Enum types is supported, but does not work
because the builtin type pickling intercepts and then fails..
This problem is now solved because PySide supports
now __qualname__.
So pickling of nested types works now without any extra
code in Python 3. Python 2 is not supported since it would
require too strange patches to Python itself.
Fixes: PYSIDE-15
Task-number: PYSIDE-1286
Change-Id: I346bde07a63afcf2555a3324fcca04efe25e704a
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Ensure it is 64bit for 64bit systems.
Change-Id: I0b4d54f2568bd70288e184a5a2d8f31532fed157
Fixes: PYSIDE-1303
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Patch as contributed on JIRA.
Change-Id: I07303a3f09259ea5f76ee09505c61d6a45fbe81a
Fixes: PYSIDE-1298
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Patch as contributed on JIRA.
Fixes: PYSIDE-1299
Change-Id: Ifbf94e59712cf16c0161da57691008f3895a64e3
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
PyType_FromSpec breaks the name "A.B.C.D" in module "A.B.C"
and name = qualname = "D".
We fix that for PySide:
module = "A.B"
qualname = "C.D"
name = "D"
and for other prefixes like Shiboken:
module = "A"
qualname = "B.C.D"
name = "D"
This had quite some impact on the signature modules.
Change-Id: Ie94971ba737107b15adbfc2517e1ed32b65fda39
Fixes: PYSIDE-1286
Task-number: PYSIDE-15
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In line 128 of errorhandler.py, the sys module is used to check for
Python 3. However, sys was never imported.
Change-Id: I01b2ae41fe611de7e378b27bb3d73589dc4e4887
Reviewed-by: Christian Tismer <tismer@stackless.com>
(cherry picked from commit d6f37d6c2f5cc9be57569fd5b20d82660644c1b7)
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The well-known Shiboken::AutoDecref construction for
easier refcount handling has a serious flaw.
In Python's object.h, this is called a naive implementation
that can be deadly when deallocating object containers.
This patch uses the same idea as the Python's Py_XSETREF
macro.
Task-number: PYSIDE-15
Change-Id: I7a36713790f35df89736437d236c8f1f58d7be1e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To remove the groundwork from the next checkin, the step
of replacing PyType_FromSpec with SbkType_FromSpec
is extracted.
This change introduces a packageLevel number that is generated
as a name prefix in the class creation but does not use it, yet.
Change-Id: Ic9061231708b546dbd3620d148bca24c27df60a5
Task-number: PYSIDE-1286
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|\|
| |
| |
| | |
Change-Id: Id9ab658ea9dcc1e61502892fcbc270166f6151de
|
| |
| |
| |
| |
| | |
Change-Id: I2e19fd2b5c07a823dd04dbcbbb4eca8aacd0189a
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I16beba02a12c6c1f656e7a92696e9a6741989a39
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Some Qt CI virtual machine templates has broken virtualenv installed.
It will get fixed once those are re-provisioned. Pinning the virtualenv
will allow us to control the version over Qt5 repository.
Change-Id: Ic59c7e091d062a149badaf03508bc7a9204cf4b6
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
shiboken2/generator/shiboken2/cppgenerator.cpp:3181:135: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
Change-Id: Ib382f47a6cd226f05db2b4e99c7c5b05bd31f135
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 0b7a1be238c585cea66732c4ed3287f325395865.
5.14 is supposed to compile against 5.12, still.
Change-Id: I4170a6f5c1506b123d3a4947b4070be2bf4dd5cd
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I742048ec0556806670cef09ae7d1c17f52014b48
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Pass the correct size of the wrapper class to
PySide::initDynamicMetaObject().
Change-Id: I424bb93f4eb50da8384140cc8b3b4b063bc49108
Fixes: PYSIDE-1255
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code snippet passing the message to the Python handler
used QString::toLocal8Bit() to convert the message. This is
wrong as Python always requires UTF-8.
Fixes: PYSIDE-1293
Change-Id: I1f16dad970aaf0d776e748110fc2054269412047
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Copy the shiboken DLL into the source directory. Since
it does not make sense to hardlink into the build
directory and install to another directory, remove the
hardlink logic.
Fixes: PYSIDE-1236
Change-Id: I016dac916502f4c28785981244e29e91e61700fe
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Increasing the refcount since otherwise the objects will be GCd.
Fixes: PYSIDE-1285
Change-Id: I9bb03c64f6ba9385de4ee892ce370bb2f827d79e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After the improvement to the GIL treatment inside PySide
to avoid UI freezing issues, many functions need an entry
on the typesystem to allow thread explicitly, this was
the case of the report, where a QMutexLocker was initialized.
The initialization was done inside a QThread run method,
so the lack of allow-thread was generating a deadlock.
The nogil section of the code (from Cython)
was not related to the issue, since replacing the content with
any instruction produced the deadlock anyways.
Fixes: PYSIDE-1271
Change-Id: Ib1fd1ebd923c3f9dc9ae390228bcf40b5b878019
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In case someone manually lock/tryLock a QBasicMutex
inside a section where threads are allowed, the lack of the
attribute will end on a deadlock.
Additionally, this removes the allow-thread for unlock() in
QMutex, since is not needed.
Task-number: PYSIDE-1271
Change-Id: I3d394c77d1b876afe324d5a50eb5da11b271c30e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The pip should be quite up to date already after provisioning CI
templates. Upgrading it later may cause permission issues.
Change-Id: Ia2b80d902eb74dbc24fe6fb00f3245657545e9dd
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Remove _compareAbstractMetaFunctions() msgInvalidVersion(),
fixing warnings.
Change-Id: I5f55b0de2d3c3fed2df09cb922c02569c937f7c1
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Refcounts had a long existing TODO comment that could be
removed after implementing refcounts correctly.
Also, the logic was harmonized and string constants avoided.
Task-number: PYSIDE-15
Task-number: PYSIDE-957
Change-Id: I0156020dae096c8b5c74ee01a2b1751b03b615b8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| | |
Fixes: PYSIDE-1272
Change-Id: If7060574851c10994b06875d3a6ce16500e75199
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
After regeneration of the registry, we need to restore the blacklist.txt
file, fix the scrape script and use the newly generated registry files.
Task-number: PYSIDE-1100
Change-Id: I2f73e36a9cc9bfb1e07b8a08ab67ddd63e211e81
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There was a problem with the typing module for Python2
that showed the wrong name.
The generated signature files are further simplified.
They no longer contain fancy definitions like "Char", which
made little sense and was replaced by "int", which our
competitor does as well.
The mypy compatibility should be considered mostly complete.
Update.. QChar was not changed to "int" but "str" because we
got clashes. Therefore, recreation of the registry was necessary.
Hard to solve stay the definitions
"Virtual, Missing, Invalid, Default, Instance".
They are very rarely used for special cases. Mypy cannot
see these definitions since the module path does not exist
in the file system.
I tried hard to fix this by building a mypy plugin, but I seem to
be forced to generate real files in a temp dir. This was too much
effort. A plugin may make sense in the future when we need to
improve the type support.
Change-Id: Id80c2da1a4a379a80ec5f3019a916a9c00cc87ff
Task-number: PYSIDE-1100
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
According to PEP 561, there needs to exist a py.typed file.
Also, the import of typing must be visible statically for mypy without
importing PySide2.
Testing.. run
mypy pyside_1100.py
and you will get the correct output without "any".
Change-Id: I1d08447161630a8c7a64eda32ff8a431e994c6a7
Fixes: PYSIDE-1100
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| | |
Change-Id: I406924aeb99768c5f29df3becbfab5db9c24cb8f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Also skipping the patch version assert.
Change-Id: I9dd35877b2123fe3682cfccfc8e59e4f978b0312
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
|\ \ |
|
| |\|
| | |
| | |
| | | |
Change-Id: I1c48ecc24ff07e760415cea1d7ed512a99c838a1
|
| | |
| | |
| | |
| | |
| | |
| | | |
Fixes: PYSIDE-1266
Change-Id: Ia0aafb1f0e91b5baf070c018d4583e64f2c92f8c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The signalmanager module contains a PyObjectWrapper object
into which PySide::SignalManager::qt_metacall calls via many
hard-to-track indirections.
Finding this problem was quite tricky. It was done by modifying
the Py_INCREF and Py_DECREF macros of a debug Python
interpreter and using the new PyGILState_Check function to
provoke a crash if the GIL was not held.
See the online documentation for details.
Change-Id: Ida8246c97dcf6443ff057d206a42d22e462f1913
Fixes: PYSIDE-813
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QMetaObjectBuilder::toMetaObject uses malloc to allocate the
space for the returned QMetaObject. As such, we need to use
free instead of delete, otherwise ASAN will report an error:
```
39: ==1537629==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete) on 0x61200006cf40
39: #0 0x7f7952f00960 in operator delete(void*) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cc:165
39: #1 0x7f7930c4d8d4 in void qDeleteAll<__gnu_cxx::__normal_iterator<QMetaObject const* const*, std::vector<QMetaObject const*, std::allocator<QMetaObject const*> > > >(__gnu_cxx::__normal_iterator<QMetaObject const* const*, std::vector<QMetaObject const*, std::allocator<QMetaObject const*> > >, __gnu_cxx::__normal_iterator<QMetaObject const* const*, std::vector<QMetaObject const*, std::allocator<QMetaObject const*> > >) /usr/include/qt/QtCore/qalgorithms.h:320
39: #2 0x7f7930c4cf98 in void qDeleteAll<std::vector<QMetaObject const*, std::allocator<QMetaObject const*> > >(std::vector<QMetaObject const*, std::allocator<QMetaObject const*> > const&) /usr/include/qt/QtCore/qalgorithms.h:328
39: #3 0x7f7930c4a847 in PySide::MetaObjectBuilder::~MetaObjectBuilder() ../3rdParty/PySide2/sources/pyside2/libpyside/dynamicqmetaobject.cpp:143
39: #4 0x7f7930c54c8f in PySide::GlobalReceiverV2::~GlobalReceiverV2() ../3rdParty/PySide2/sources/pyside2/libpyside/globalreceiverv2.cpp:208
39: #5 0x7f7930c54ccf in PySide::GlobalReceiverV2::~GlobalReceiverV2() ../3rdParty/PySide2/sources/pyside2/libpyside/globalreceiverv2.cpp:223
39: #6 0x7f7930c54f63 in PySide::GlobalReceiverV2::decRef(QObject const*) ../3rdParty/PySide2/sources/pyside2/libpyside/globalreceiverv2.cpp:271
39: #7 0x7f7930c553fc in PySide::GlobalReceiverV2::qt_metacall(QMetaObject::Call, int, void**) ../3rdParty/PySide2/sources/pyside2/libpyside/globalreceiverv2.cpp:338
39: #8 0x7f7941d2e251 (/usr/lib/libQt5Core.so.5+0x2db251)
39: #9 0x7f7941d28bef in QObject::destroyed(QObject*) (/usr/lib/libQt5Core.so.5+0x2d5bef)
39: #10 0x7f7941d2c8d6 in QObject::~QObject() (/usr/lib/libQt5Core.so.5+0x2d98d6)
39:
39: 0x61200006cf40 is located 0 bytes inside of 264-byte region [0x61200006cf40,0x61200006d048)
39: allocated by thread T0 here:
39: #0 0x7f7952efdd48 in __interceptor_calloc /build/gcc/src/gcc/libsanitizer/asan/asan_malloc_linux.cc:153
39: #1 0x7f7941d1d742 in QMetaObjectBuilder::toMetaObject() const (/usr/lib/libQt5Core.so.5+0x2ca742)
39: #2 0x7f7930c4bb88 in PySide::MetaObjectBuilder::update() ../3rdParty/PySide2/sources/pyside2/libpyside/dynamicqmetaobject.cpp:425
39: #3 0x7f7930c54a85 in PySide::GlobalReceiverV2::GlobalReceiverV2(_object*, QSharedPointer<QMap<QByteArray, PySide::GlobalReceiverV2*> >) ../3rdParty/PySide2/sources/pyside2/libpyside/globalreceiverv2.cpp:195
39: #4 0x7f7930c50a70 in PySide::SignalManager::globalReceiver(QObject*, _object*) ../3rdParty/PySide2/sources/pyside2/libpyside/signalmanager.cpp:313
39: #5 0x7f792ec3b257 in getReceiver 3rdParty/PySide2/sources/pyside2/PySide2/QtCore/PySide2/QtCore/qobject_wrapper.cpp:155
39: #6 0x7f792ec3b67f in qobjectConnectCallback 3rdParty/PySide2/sources/pyside2/PySide2/QtCore/PySide2/QtCore/qobject_wrapper.cpp:205
39: #7 0x7f792ec3e5b9 in Sbk_QObjectFunc_connect 3rdParty/PySide2/sources/pyside2/PySide2/QtCore/PySide2/QtCore/qobject_wrapper.cpp:944
39: #8 0x7f7943a66250 in PyObject_Call (/usr/lib/libpython3.8.so.1.0+0x13c250)
```
Change-Id: I8c5a745fab9785425c0844129731c7c8a17b8d21
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The build_scripts are able to build Designer, optionally.
For macOS, the optional status was forgotten.
Instead of always patching the build_scripts, I finally
fixed that buglet ;-)
Change-Id: Iaa62e27253ec7035f0eebde17f0f2b8c4593be67
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The pep384impl.h part is quite readable and stateless concerning the
state of Py_LIMITED_API.
The pep384impl.cpp part is stateful, which means there is no clear
separation between parts of the implementation.
This had led to unnecessary confusion in the past. To avoid that in
future, the #ifdef status of Py_LIMITED_API will no longer be carried
over multiple sections.
Also, checks which are for the limited API only are no longer executed
by default.
Further, PyDict_GetItem is replaced by PyDict_GetItemWithError, where
we do not expect a real error.
Change-Id: Ia51e551216c76f82b701ebc45c40e2d1412cabf5
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit fcbbab0a6b5949b5c3726214ed87898b5fbcebcc.
This is no longer required after a fix generating the property
code into the setattro methods of QObject-derived classes.
Task-number: PYSIDE-803
Task-number: PYSIDE-1255
Change-Id: I9e989c0592eaaf25aa55a1db49537daa4bdb2a57
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Numpy 1.16.6 was the last version that supports Python 2.7
Change-Id: I43f401a6da350b874b2b25114fdc6d9fd07f69ef
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adapt the version check of the internal include directory to parse the
entire directory (typically named like 9.0.0) as version number
instead of just checking the first digit.
Change-Id: I7e09c36fd523328e962c7f2acbc8385787e94998
Fixes: PYSIDE-1259
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The fixes for PYSIDE-803 caused setattro methods to be generated
for many classes, resulting in QObject's setattro method no longer
being called.
Generate property code in each class inheriting QObject.
Task-number: PYSIDE-803
Fixes: PYSIDE-1255
Change-Id: I56f52fb43c4ddc77914090ac122776050354ddbe
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add allow-thread.
Change-Id: I7feba9761a52c273cf4500a42dfbea0463d6040f
Fixes: PYSIDE-1253
Reviewed-by: Christian Tismer <tismer@stackless.com>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Amends cf8e0d98821cc7e6f0fc48b56a0a16ad88cd881b.
Task-number: PYSIDE-841
Change-Id: Iea6ab04e2ce8c4fb77d7d5c770dc45005f2635dc
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In PYSIDE-803 we used an optimization that accessed
a dictionary without holding the GIL. This turned out to be not
correct, because PyDict_GetItem works with thread state
to maintain the global error variables.
PyDict_GetItemWithErrors can be used instead in a way that
allows releasing the GIL.
Task-number: PYSIDE-803
Task-number: PYSIDE-813
Change-Id: Ifb0cbb20c21ca9c8b3d099fff1db5410eb6824b4
Reviewed-by: Christian Tismer <tismer@stackless.com>
|