Details
Description
Non-default constructible <value-type> (like recently added QWebEngineFrame QWebEngineDesktopMediaRequest ) cause some issues with shiboken since the copy conversion used for function arguments requires a default constructor.
Using <object-type> is not always an alternative since then, function return by value does not work and crashes occur when emitting signals passing by const-ref.
In the future, there might also be other special cases like move-only types.
- Better detection of constructibility from clang
- Added attributes for overriding code model detection of constructibility
- Fixed crash when passing types with pointer conversion only by const ref in Qt Signals
- Handle Move only types
- Fix passing non-default constructible types by ref
- Streamlined code
Attachments
Issue Links
- relates to
-
PYSIDE-3015 RuntimeWarning: CopyCppToPython(): SbkConverter::copyToPython is null for "PySide6.QtOpcUa.QOpcUaWriteResult".
-
- Closed
-
For Gerrit Dashboard: PYSIDE-3004 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
621860,32 | shiboken6: Refactor logic for determining constructability | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
622070,5 | Fix crash of signals with object-type parameter being passed by const-ref | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
622254,17 | shiboken6: Handle further class special functions | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
622302,19 | shiboken6: Remove old code handling special value types | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
622417,4 | WIP: Add further type system flags for value types | dev | pyside/pyside-setup | Status: ABANDONED | -2 | 0 |
622604,16 | shiboken6: Generate converters depending on new type system flags | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
622639,16 | shiboken6: Add a new type entry base class CppTypeEntry for C++ types | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
622681,19 | Add special function enums to CppTypeEntry | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
622995,15 | shiboken6: warn about special types | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
623091,16 | shiboken6: Handle move only types | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
623190,17 | shiboken6: Add documentation about value vs objects | dev | pyside/pyside-setup | Status: MERGED | +2 | +1 |
623359,7 | shiboken6: Enable passing non-default constructible value type by reference | dev | pyside/pyside-setup | Status: MERGED | +2 | 0 |
623748,3 | M2M modules: Use value-type where applicable | tqtc/dev | pyside/tqtc-pyside-setup | Status: MERGED | +2 | 0 |
623801,3 | M2M modules: Use value-type where applicable | tqtc/6.8 | pyside/tqtc-pyside-setup | Status: MERGED | +2 | 0 |