diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-07-13 13:32:50 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2020-07-14 11:34:43 +0000 |
commit | 27186df9e1ddbf625b73ae9a6c26769d2363a3b4 (patch) | |
tree | d7a19d9ab92c4b33fa78ab665d4fa7ade6e62dda /sources/shiboken2/tests/libsample/virtualmethods.cpp | |
parent | 871a7e2ea74e093d862f954b7ddca374c02cd5b8 (diff) |
shiboken2: Handle virtual methods returning a reference
Although it is a questionable practice, it occurs in Qt 6:
virtual const QEventPoint &QPointerEvent::point(int i) const;
Previously, the generated return statement
return QEventPoint();
would cause a warning about returning a temporary.
Fix by creating a static variable and returning a
reference to it.
Task-number: PYSIDE-1339
Task-number: PYSIDE-904
Change-Id: Id6467be22a166e99e8dcf08b2c7c14df33cd2786
Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2/tests/libsample/virtualmethods.cpp')
-rw-r--r-- | sources/shiboken2/tests/libsample/virtualmethods.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sources/shiboken2/tests/libsample/virtualmethods.cpp b/sources/shiboken2/tests/libsample/virtualmethods.cpp index 294feca60..8f9c8f64d 100644 --- a/sources/shiboken2/tests/libsample/virtualmethods.cpp +++ b/sources/shiboken2/tests/libsample/virtualmethods.cpp @@ -57,6 +57,12 @@ VirtualMethods::getMargins(int* left, int* top, int* right, int* bottom) const *bottom = m_bottom; } +const Str & VirtualMethods::returnConstRef() const +{ + static const Str result; + return result; +} + double VirtualDaughter2::virtualMethod0(Point pt, int val, Complex cpx, bool b) { return 42 + VirtualMethods::virtualMethod0(pt, val, cpx, b); |