diff options
author | Maurice Kalinowski <maurice.kalinowski@qt.io> | 2017-02-27 12:44:19 +0100 |
---|---|---|
committer | Maurice Kalinowski <maurice.kalinowski@qt.io> | 2017-02-28 07:59:08 +0000 |
commit | b77af012b1e40e3531838652ea4114b77327bbd2 (patch) | |
tree | 56f8fb6e256b1796f2b07c451f67e95510a29722 | |
parent | 10902d9809e1df9be58d7408c0aceeef8a621b2d (diff) |
winrt: Fix potential crash when unable to access product type
Using the store listing might not work on Windows Phone 8.1, especially
with the Simulator mode. Hence, check whether accessing
IProductListingWithConsumable works.
GetProductReceiptAsync might be another option on production side, but
that does not work with the simulator at all.
Change-Id: I1ad9ea3127b54830553917749d1eb0e8524727d6
Task-number: QTBUG-58836
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
-rw-r--r-- | src/purchasing/inapppurchase/winrt/qwinrtinapppurchasebackend.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/purchasing/inapppurchase/winrt/qwinrtinapppurchasebackend.cpp b/src/purchasing/inapppurchase/winrt/qwinrtinapppurchasebackend.cpp index 438a9ee..213aece 100644 --- a/src/purchasing/inapppurchase/winrt/qwinrtinapppurchasebackend.cpp +++ b/src/purchasing/inapppurchase/winrt/qwinrtinapppurchasebackend.cpp @@ -739,9 +739,13 @@ HRESULT QWinRTInAppPurchaseBackendPrivate::onListingInformation(IAsyncOperation< ComPtr<IProductListingWithConsumables> converted; hr = value.As(&converted); - Q_ASSERT_SUCCEEDED(hr); - hr = converted->get_ProductType(&nativeInfo->type); - Q_ASSERT_SUCCEEDED(hr); + if (SUCCEEDED(hr)) { + hr = converted->get_ProductType(&nativeInfo->type); + Q_ASSERT_SUCCEEDED(hr); + } else { + qWarning("Could not acquire product type. Assuming Unlockable"); + nativeInfo->type = ProductType_Durable; + } qCDebug(lcPurchasingBackend) << "Detailed info:" << " ID:" << QString::fromWCharArray(nativeInfo->productID.GetRawBuffer(nullptr)) |