From 5567a42bb1c7b3b6b5293057760f673551c291c4 Mon Sep 17 00:00:00 2001 From: zeromus Date: Thu, 25 Mar 2021 20:47:29 -0400 Subject: [PATCH] don't depend on exceptions for flow control --- .../fwmanager/FirmwareManager.cs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/BizHawk.Client.Common/fwmanager/FirmwareManager.cs b/src/BizHawk.Client.Common/fwmanager/FirmwareManager.cs index afe5cd8fd4..5418344b76 100644 --- a/src/BizHawk.Client.Common/fwmanager/FirmwareManager.cs +++ b/src/BizHawk.Client.Common/fwmanager/FirmwareManager.cs @@ -125,17 +125,12 @@ namespace BizHawk.Client.Common foreach (var fr in FirmwareDatabase.FirmwareRecords) { _resolutionDictionary.Remove(fr); // clear previous resolution results - FirmwareOption fo; - try - { - // check each acceptable option for this firmware, looking for the first that's in the reader's file list - fo = FirmwareDatabase.FirmwareOptions.First(fo1 => fo1.ID == fr.ID && fo1.IsAcceptableOrIdeal - && reader.Dict.ContainsKey(fo1.Hash)); - } - catch (InvalidOperationException) - { - continue; // didn't find any of them - } + + // check each acceptable option for this firmware, looking for the first that's in the reader's file list + FirmwareOption fo = FirmwareDatabase.FirmwareOptions.FirstOrDefault(fo1 => fo1.ID == fr.ID && fo1.IsAcceptableOrIdeal && reader.Dict.ContainsKey(fo1.Hash)); + if (fo.Size == 0) + continue; + // else found one, add it to the dict _resolutionDictionary[fr] = new ResolutionInfo {