summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaurice Kalinowski <maurice.kalinowski@qt.io>2017-02-27 12:44:19 +0100
committerMaurice Kalinowski <maurice.kalinowski@qt.io>2017-02-28 07:59:08 +0000
commitb77af012b1e40e3531838652ea4114b77327bbd2 (patch)
tree56f8fb6e256b1796f2b07c451f67e95510a29722
parent10902d9809e1df9be58d7408c0aceeef8a621b2d (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.cpp10
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))