~thopiekar/pyside/+git/shiboken:wip/clang

Last commit made on 2017-03-29
Get this branch:
git clone -b wip/clang https://git.launchpad.net/~thopiekar/pyside/+git/shiboken

Branch merges

Branch information

Name:
wip/clang
Repository:
lp:~thopiekar/pyside/+git/shiboken

Recent commits

670b4a6... by Friedemann Kleint

Merge branch 'dev' into wip/clang

Change-Id: I15c4a582788d1ab5aa5f8dbabbd89e75d5449ffd

7e508c1... by Friedemann Kleint

Generators: Generate reinterpret_cast<> for SbkObjectType *

Change-Id: I27196d4f5be0257e3ab87c291e4ecb6ff234a505
Reviewed-by: Christian Tismer <email address hidden>

b294c7e... by Friedemann Kleint

Generate reinterpret_cast<> for cppSelf

Change-Id: Iafb5d014f9f33591aebf0ab4b99e3e6942a4d51a
Reviewed-by: Christian Tismer <email address hidden>

984a2fa... by Friedemann Kleint

libshiboken: Take const SbkConverter/SbkObjectType * where appropriate

Change-Id: I0597f4c4f2eb0e8d4979690eeb1f17d78cf4e619
Reviewed-by: Christian Tismer <email address hidden>

b8f7e2a... by Friedemann Kleint

Generator::minimalConstructor(): No longer generate C-style casts

bool: false
Other primitives: int(0)
Flags: Flags(0)
Enums: static_cast<Enum>(0)

Change-Id: Ic24c2d95106682508c58c78d873137f8a91bc3f8
Reviewed-by: Christian Tismer <email address hidden>

9bd988e... by Friedemann Kleint

TypeDatabase: Refactor API version checking

The repeated construction of a QRegExp in the version checking
loop shows up in the profiler.
Change the API to accept a QString, reducing conversions and
remove obsolete API.
Port the version checking code to use QRegularExpression and
QVersionNumber and store the regexps in a vector.

Change-Id: Id3e509e065d73699f49109df1f184edbefb8a09a
Reviewed-by: Christian Tismer <email address hidden>

8d99ee1... by Pankaj Pandey <email address hidden>

Improve the 'Value' type wrapper registration

This commit works around some bugs where multiple/incorrect
wrappers were registered for some types:

- In cases where the first field of a class was itself a Value
  type instance (instead of pointer), both the parent
  and child wrappers had same cptr address, causing confusion
  in retrieveWrapper. Previously, this was worked around by always
  creating a new wrapper for all Value type fields on every access,
  causing leaks. We now check for colocated child wrappers and
  return that instead of creating new wrapper, so each Value type
  subfield need only have one wrapper.
- Some cases of incorrect wrapper registration due to an existing
  wrapper which shiboken could not figure being deleted are fixed,
  specifically cases where the newly registered wrapper is from
  object created in python or owns its wrapper.
- Do not release incorrect wrapper in case of address reuse
  by checking that the registered wrapper is indeed the wrapper
  being released.

Task-number: PYSIDE-217
Task-number: PYSIDE-224
Change-Id: I019c078566c4b9b90e63c5d991e2e372d39c632a
Reviewed-by: Alexandru Croitor <email address hidden>
Reviewed-by: Christian Tismer <email address hidden>

4d76c6e... by Alexandru Croitor <email address hidden>

Implement partial QSharedPointer support

This change introduces a new XML tag called smart-pointer-type which
currently only supports implementations of C++ shared pointers.
This allows using objects pointed to by a shared pointer inside python
code.
There is one known limitation at the moment. Python shared pointer
objects are only created as a result of using C++ API with shared
pointers in the method signature (either the return type or argument
type). Thus is it is not currently possible to instantiate shared
pointer objects directly, e.g. p = ModuleName.SharedPointer() will
not work.

Task-number: PYSIDE-454
Change-Id: Iacf9fcc8613fbf9bd94e179169d78da8aac58f45
Reviewed-by: Friedemann Kleint <email address hidden>
Reviewed-by: Christian Tismer <email address hidden>

2ab4062... by Friedemann Kleint

Mention class name in warning about Unknown Operator

Currently happens with Clang 4.0 for operator! for Point[F].

Task-number: PYSIDE-323
Change-Id: I212d107ce15dc98b400e898181655abdebdfc848
Reviewed-by: Alexandru Croitor <email address hidden>

a9cfd51... by Friedemann Kleint

Refactor the character handler of the typedatabase XML parser

The function is called from the XML parser as well as with
strings from an imported file.
Change the function to be a template taking a QString/QStringRef
and add necessary overloads to the setters.
This prevents newlines and unused content in the XML files
from unnecessarily being converted to a QString.

Change-Id: Ifbac37c9099d799a8a334f46f78050dcbd52fad1
Reviewed-by: Alexandru Croitor <email address hidden>