diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-01-28 17:27:27 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2015-02-02 13:58:30 +0000 |
commit | 968110d27a7844362b15155aa353077bf27578a3 (patch) | |
tree | 093afc8249f2b2ef2f2cbf7d19027fa4dc12f78b /src/activeqt/shared | |
parent | 9b4843607b0240b943c5094d2a193569fb50de95 (diff) | |
download | qtactiveqt-968110d27a7844362b15155aa353077bf27578a3.tar.gz |
Clean up code dealing with VARIANT.
Initialize arguments before the function call and add checks
for IDispatch ** type variants to clearVARIANT().
Task-number: QTBUG-44048
Change-Id: Idceab05852bca8b0cb7e60672e392ee08a3be594
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Diffstat (limited to 'src/activeqt/shared')
-rw-r--r-- | src/activeqt/shared/qaxtypefunctions.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/activeqt/shared/qaxtypefunctions.cpp b/src/activeqt/shared/qaxtypefunctions.cpp index 1b6ab24..e426a75 100644 --- a/src/activeqt/shared/qaxtypefunctions.cpp +++ b/src/activeqt/shared/qaxtypefunctions.cpp @@ -207,8 +207,11 @@ void clearVARIANT(VARIANT *var) delete var->pdate; break; case VT_DISPATCH|VT_BYREF: - (*var->ppdispVal)->Release(); - delete var->ppdispVal; + if (var->ppdispVal) { + if (*var->ppdispVal) + (*var->ppdispVal)->Release(); + delete var->ppdispVal; + } break; case VT_ARRAY|VT_VARIANT|VT_BYREF: case VT_ARRAY|VT_UI1|VT_BYREF: |