summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2018-09-20 11:28:05 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2018-09-20 11:17:36 +0000
commit52637083eeaa1ab4b9468813a28d40feea81ab5e (patch)
tree7b5691476994a49499d68d7e9addb875a85fe77e
parentdf7a2c1b05614a1dae2209f108d7d9ac06c7f4d6 (diff)
Fix crash when querying properties
Do not clear the variant structure for IDispatch* results. Amends 717cc8fa56b1eb39a372d0c5c561aa30dbbbdd47. Task-number: QTBUG-68415 Task-number: QTBUG-70628 Change-Id: Ibf739a77840dc68d5f9a8bd343a6b5d36e04d13b Reviewed-by: Andy Shaw <andy.shaw@qt.io>
-rw-r--r--src/activeqt/container/qaxbase.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/activeqt/container/qaxbase.cpp b/src/activeqt/container/qaxbase.cpp
index 883f1e9..294d8dd 100644
--- a/src/activeqt/container/qaxbase.cpp
+++ b/src/activeqt/container/qaxbase.cpp
@@ -3684,7 +3684,10 @@ int QAxBase::internalInvoke(QMetaObject::Call call, int index, void **v)
// get return value
if (hres == S_OK && ret.vt != VT_EMPTY) {
QVariantToVoidStar(VARIANTToQVariant(ret, slot.typeName()), v[0], slot.typeName());
- clearVARIANT(&ret);
+ if (ret.vt != VT_DISPATCH)
+ clearVARIANT(&ret);
+ else
+ VariantInit(&ret);
}
// update out parameters