Browse Source

Xcode: Fix nullability warnings in Xcode 14.3

v7.0.9
reuk 2 years ago
parent
commit
28ad953a3a
No known key found for this signature in database GPG Key ID: FCB43929F012EE5C
5 changed files with 52 additions and 13 deletions
  1. +5
    -0
      modules/juce_core/native/juce_mac_Network.mm
  2. +10
    -0
      modules/juce_gui_basics/native/accessibility/juce_ios_Accessibility.mm
  3. +8
    -5
      modules/juce_gui_basics/native/juce_mac_MainMenu.mm
  4. +4
    -0
      modules/juce_gui_basics/native/juce_mac_Windowing.mm
  5. +25
    -8
      modules/juce_product_unlocking/native/juce_ios_InAppPurchases.cpp

+ 5
- 0
modules/juce_core/native/juce_mac_Network.mm View File

@@ -686,7 +686,12 @@ struct BackgroundDownloadTask : public URL::DownloadTask
activeSessions.set (uniqueIdentifier, this);
auto nsUrl = [NSURL URLWithString: juceStringToNS (urlToUse.toString (true))];
jassert (nsUrl != nullptr);
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wnullable-to-nonnull-conversion")
NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL: nsUrl];
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
if (options.usePost)
[request setHTTPMethod: @"POST"];


+ 10
- 0
modules/juce_gui_basics/native/accessibility/juce_ios_Accessibility.mm View File

@@ -533,7 +533,17 @@ private:
{
const auto s = detail::makeCompileTimeStr (@encode (Result), @encode (id), @encode (SEL), @encode (Args)...);
const auto signature = [NSMethodSignature signatureWithObjCTypes: s.data()];
if (signature == nullptr)
{
jassertfalse;
return {};
}
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wnullable-to-nonnull-conversion")
const auto invocation = [NSInvocation invocationWithMethodSignature: signature];
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
invocation.selector = HasSelector::sel();
// Indices 0 and 1 are 'id self' and 'SEL _cmd' respectively


+ 8
- 5
modules/juce_gui_basics/native/juce_mac_MainMenu.mm View File

@@ -506,12 +506,15 @@ private:
{
if (isPositiveAndBelow (menuItemIndex, (int) [parentMenu numberOfItems]))
{
auto menuItem = [parentMenu itemAtIndex:menuItemIndex];
if (auto submenu = [menuItem submenu])
removeItemRecursive (submenu);
if (auto menuItem = [parentMenu itemAtIndex:menuItemIndex])
{
if (auto submenu = [menuItem submenu])
removeItemRecursive (submenu);
[parentMenu removeItem:menuItem];
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wnullable-to-nonnull-conversion")
[parentMenu removeItem: menuItem];
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
}
}
else
jassertfalse;


+ 4
- 0
modules/juce_gui_basics/native/juce_mac_Windowing.mm View File

@@ -153,9 +153,11 @@ bool DragAndDropContainer::performExternalDragDropOfText (const String& text, Co
NSImage* image = [[NSWorkspace sharedWorkspace] iconForFile: nsEmptyString()];
[dragItem setDraggingFrame: getDragRect (view, event) contents: image];
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wnullable-to-nonnull-conversion")
if (auto session = [view beginDraggingSessionWithItems: [NSArray arrayWithObject: dragItem]
event: event
source: helper])
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
{
session.animatesToStartingPositionsOnCancelOrFail = YES;
session.draggingFormation = NSDraggingFormationNone;
@@ -208,9 +210,11 @@ bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& fi
NSDraggingSourceHelper::setDragOperation (helper, canMoveFiles ? NSDragOperationMove
: NSDragOperationCopy);
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wnullable-to-nonnull-conversion")
return [view beginDraggingSessionWithItems: dragItems
event: event
source: helper] != nullptr;
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
}
}
}


+ 25
- 8
modules/juce_product_unlocking/native/juce_ios_InAppPurchases.cpp View File

@@ -374,11 +374,25 @@ struct InAppPurchases::Pimpl
//==============================================================================
void processReceiptRefreshResponseWithSubscriptionsSharedSecret (const String& secret)
{
auto receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
const auto succeeded = [&]
{
auto receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
if (receiptURL == nullptr)
return false;
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wnullable-to-nonnull-conversion")
auto receiptData = [NSData dataWithContentsOfURL: receiptURL];
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
if (receiptData == nullptr)
return false;
if (auto receiptData = [NSData dataWithContentsOfURL: receiptURL])
fetchReceiptDetailsFromAppStore (receiptData, secret);
else
return true;
}();
if (! succeeded)
owner.listeners.call ([&] (Listener& l) { l.purchasesListRestored ({}, false, NEEDS_TRANS ("Receipt fetch failed")); });
}
@@ -410,7 +424,10 @@ struct InAppPurchases::Pimpl
if (nsurl == nullptr)
return;
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wnullable-to-nonnull-conversion")
const auto storeRequest = [NSMutableURLRequest requestWithURL: nsurl];
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
[storeRequest setHTTPMethod: @"POST"];
[storeRequest setHTTPBody: requestData];
@@ -611,7 +628,7 @@ private:
addMethod (@selector (productsRequest:didReceiveResponse:), [] (id self, SEL, SKProductsRequest* request, SKProductsResponse* response)
{
auto& t = getThis (self);
for (auto i = 0; i < t.pendingProductInfoRequests.size(); ++i)
{
auto& pendingRequest = *t.pendingProductInfoRequests[i];
@@ -634,7 +651,7 @@ private:
addMethod (@selector (requestDidFinish:), [] (id self, SEL, SKRequest* request)
{
auto& t = getThis (self);
if (auto receiptRefreshRequest = getAs<SKReceiptRefreshRequest> (request))
{
for (auto i = 0; i < t.pendingReceiptRefreshRequests.size(); ++i)
@@ -654,7 +671,7 @@ private:
addMethod (@selector (request:didFailWithError:), [] (id self, SEL, SKRequest* request, NSError* error)
{
auto& t = getThis (self);
if (auto receiptRefreshRequest = getAs<SKReceiptRefreshRequest> (request))
{
for (auto i = 0; i < t.pendingReceiptRefreshRequests.size(); ++i)
@@ -675,7 +692,7 @@ private:
addMethod (@selector (paymentQueue:updatedTransactions:), [] (id self, SEL, SKPaymentQueue*, NSArray<SKPaymentTransaction*>* transactions)
{
auto& t = getThis (self);
for (SKPaymentTransaction* transaction in transactions)
{
switch (transaction.transactionState)
@@ -706,7 +723,7 @@ private:
addMethod (@selector (paymentQueue:updatedDownloads:), [] (id self, SEL, SKPaymentQueue*, NSArray<SKDownload*>* downloads)
{
auto& t = getThis (self);
for (SKDownload* download in downloads)
{
if (auto* pendingDownload = t.getPendingDownloadFor (download))


Loading…
Cancel
Save