From 94b945d8f48295c81efd3eec0059d33c3e3443fc Mon Sep 17 00:00:00 2001 From: JP Cimalando Date: Wed, 31 Jul 2019 22:29:01 +0200 Subject: [PATCH] mac: rewrite file dialog without a for-each loop --- dgl/src/Window.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/dgl/src/Window.cpp b/dgl/src/Window.cpp index 56898247..4aca5b35 100644 --- a/dgl/src/Window.cpp +++ b/dgl/src/Window.cpp @@ -1387,18 +1387,24 @@ bool Window::openFileBrowser(const FileBrowserOptions& options) { if (result == NSFileHandlingPanelOKButton) { - for (NSURL* url in [panel URLs]) + NSArray *urls = [panel URLs]; + NSURL *fileUrl = nullptr; + + for (NSUInteger i = 0, n = [urls count]; i < n && !fileUrl; ++i) { - if (![url isFileURL]) - continue; + NSURL *url = (NSURL *)[urls objectAtIndex:i]; + if ([url isFileURL]) + fileUrl = url; + } + if (fileUrl) + { PuglView *view = pData->fView; if (view->fileSelectedFunc) { - const char* fileName = [url.path UTF8String]; + const char* fileName = [fileUrl.path UTF8String]; view->fileSelectedFunc(view, fileName); } - break; } }