diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-09-20 11:28:05 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2018-09-20 11:17:36 +0000 |
commit | 52637083eeaa1ab4b9468813a28d40feea81ab5e (patch) | |
tree | 7b5691476994a49499d68d7e9addb875a85fe77e | |
parent | df7a2c1b05614a1dae2209f108d7d9ac06c7f4d6 (diff) | |
download | qtactiveqt-52637083eeaa1ab4b9468813a28d40feea81ab5e.tar.gz |
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.cpp | 5 |
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 |