From d504a4b1a8d707fca995231d3bb8047414d8cf3d Mon Sep 17 00:00:00 2001 From: Nate Weaver Date: Tue, 20 Oct 2020 12:02:27 -0500 Subject: [PATCH 1/2] Replace force-unwraps Fix for #2513. --- .../General/GeneralPrefencesViewController.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Mac/Preferences/General/GeneralPrefencesViewController.swift b/Mac/Preferences/General/GeneralPrefencesViewController.swift index 1ecfb3ff3..9d4b0c20b 100644 --- a/Mac/Preferences/General/GeneralPrefencesViewController.swift +++ b/Mac/Preferences/General/GeneralPrefencesViewController.swift @@ -202,10 +202,12 @@ private extension GeneralPreferencesViewController { menu.addItem(NSMenuItem.separator()) for browser in allBrowsers { - let item = NSMenuItem(title: browser.name!, action: nil, keyEquivalent: "") + guard let name = browser.name else { continue } + + let item = NSMenuItem(title: name, action: nil, keyEquivalent: "") item.representedObject = browser.bundleIdentifier - let icon = browser.icon! + let icon = browser.icon ?? NSWorkspace.shared.icon(forFileType: kUTTypeApplicationBundle as String) icon.size = NSSize(width: 16.0, height: 16.0) item.image = browser.icon menu.addItem(item) From 6588a141c2b8fc4ab95693be176aaefbfb4b1dd4 Mon Sep 17 00:00:00 2001 From: Nate Weaver Date: Tue, 20 Oct 2020 12:05:40 -0500 Subject: [PATCH 2/2] Make sure range.location isn't out-of-bounds Fix for #2512. --- Shared/Extensions/NSAttributedString+NetNewsWire.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Shared/Extensions/NSAttributedString+NetNewsWire.swift b/Shared/Extensions/NSAttributedString+NetNewsWire.swift index f778dfb75..98fb694b7 100644 --- a/Shared/Extensions/NSAttributedString+NetNewsWire.swift +++ b/Shared/Extensions/NSAttributedString+NetNewsWire.swift @@ -191,6 +191,8 @@ extension NSAttributedString { result.addAttribute(.font, value: baseFont, range: NSRange(location: 0, length: result.length)) for (range, styles) in attributeRanges { + if range.location >= result.length { continue } + let currentFont = result.attribute(.font, at: range.location, effectiveRange: nil) as! Font let currentDescriptor = currentFont.fontDescriptor var descriptor = currentDescriptor.copy() as! FontDescriptor