From e94d24f5086e6bd371fe74661ad8a650fb99ea55 Mon Sep 17 00:00:00 2001
From: Marco Carvalho <marcolucio27@gmail.com>
Date: Fri, 9 Jun 2023 08:05:32 -0300
Subject: Prefer a 'TryGetValue' call over a Dictionary indexer access guarded
 by a 'ContainsKey' (#5231)

* Prefer a 'TryGetValue' call over a Dictionary indexer access guarded by a 'ContainsKey' check to avoid double lookup

* fix
---
 src/Ryujinx.HLE/FileSystem/ContentManager.cs | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

(limited to 'src/Ryujinx.HLE/FileSystem/ContentManager.cs')

diff --git a/src/Ryujinx.HLE/FileSystem/ContentManager.cs b/src/Ryujinx.HLE/FileSystem/ContentManager.cs
index 9facdd0b..e00310a0 100644
--- a/src/Ryujinx.HLE/FileSystem/ContentManager.cs
+++ b/src/Ryujinx.HLE/FileSystem/ContentManager.cs
@@ -181,7 +181,7 @@ namespace Ryujinx.HLE.FileSystem
                         }
                     }
 
-                    if (_locationEntries.ContainsKey(storageId) && _locationEntries[storageId]?.Count == 0)
+                    if (_locationEntries.TryGetValue(storageId, out var locationEntriesItem) && locationEntriesItem?.Count == 0)
                     {
                         _locationEntries.Remove(storageId);
                     }
@@ -347,9 +347,9 @@ namespace Ryujinx.HLE.FileSystem
         {
             lock (_lock)
             {
-                if (_contentDictionary.ContainsKey((titleId, contentType)))
+                if (_contentDictionary.TryGetValue((titleId, contentType), out var contentDictionaryItem))
                 {
-                    return UInt128Utils.FromHex(_contentDictionary[(titleId, contentType)]);
+                    return UInt128Utils.FromHex(contentDictionaryItem);
                 }
             }
 
@@ -719,9 +719,9 @@ namespace Ryujinx.HLE.FileSystem
 
                             Nca nca = new Nca(_virtualFileSystem.KeySet, storage);
 
-                            if (updateNcas.ContainsKey(nca.Header.TitleId))
+                            if (updateNcas.TryGetValue(nca.Header.TitleId, out var updateNcasItem))
                             {
-                                updateNcas[nca.Header.TitleId].Add((nca.Header.ContentType, entry.FullName));
+                                updateNcasItem.Add((nca.Header.ContentType, entry.FullName));
                             }
                             else
                             {
@@ -732,10 +732,8 @@ namespace Ryujinx.HLE.FileSystem
                     }
                 }
 
-                if (updateNcas.ContainsKey(SystemUpdateTitleId))
+                if (updateNcas.TryGetValue(SystemUpdateTitleId, out var ncaEntry))
                 {
-                    var ncaEntry = updateNcas[SystemUpdateTitleId];
-
                     string metaPath = ncaEntry.Find(x => x.type == NcaContentType.Meta).path;
 
                     CnmtContentMetaEntry[] metaEntries = null;
@@ -770,9 +768,9 @@ namespace Ryujinx.HLE.FileSystem
                         throw new FileNotFoundException("System update title was not found in the firmware package.");
                     }
 
-                    if (updateNcas.ContainsKey(SystemVersionTitleId))
+                    if (updateNcas.TryGetValue(SystemVersionTitleId, out var updateNcasItem))
                     {
-                        string versionEntry = updateNcas[SystemVersionTitleId].Find(x => x.type != NcaContentType.Meta).path;
+                        string versionEntry = updateNcasItem.Find(x => x.type != NcaContentType.Meta).path;
 
                         using (Stream ncaStream = GetZipStream(archive.GetEntry(versionEntry)))
                         {
@@ -916,9 +914,9 @@ namespace Ryujinx.HLE.FileSystem
                         }
                     }
 
-                    if (updateNcas.ContainsKey(nca.Header.TitleId))
+                    if (updateNcas.TryGetValue(nca.Header.TitleId, out var updateNcasItem))
                     {
-                        updateNcas[nca.Header.TitleId].Add((nca.Header.ContentType, entry.FullPath));
+                        updateNcasItem.Add((nca.Header.ContentType, entry.FullPath));
                     }
                     else
                     {
-- 
cgit v1.2.3-70-g09d2