diff --git a/examples/Utilities/InAppPurchasesDemo.h b/examples/Utilities/InAppPurchasesDemo.h index 9e1e1db5e9..8979b1832c 100644 --- a/examples/Utilities/InAppPurchasesDemo.h +++ b/examples/Utilities/InAppPurchasesDemo.h @@ -442,15 +442,17 @@ public: Component* refreshComponentForRow (int row, bool selected, Component* existing) override { + auto safePtr = rawToUniquePtr (existing); + if (isPositiveAndBelow (row, voiceProducts.size())) { - if (existing == nullptr) - existing = new VoiceRow (purchases); + if (safePtr == nullptr) + safePtr = std::make_unique (purchases); - if (auto* voiceRow = dynamic_cast (existing)) + if (auto* voiceRow = dynamic_cast (safePtr.get())) voiceRow->update (row, selected); - return existing; + return safePtr.release(); } return nullptr;