From 5da12a704d2fedfc31770efb4f43dcb15cefa4ea Mon Sep 17 00:00:00 2001 From: Kenneth Hsu Date: Tue, 26 Sep 2017 20:13:40 -0700 Subject: [PATCH] Convert if statement to switch statement. When the comparison is performed on an enum, using a switch statement can allow for additional compiler optimizations. --- .../Main/Operation/RecreateDatabaseHandler.cs | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs b/Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs index 539a6d4fd..cffa779ef 100644 --- a/Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs +++ b/Duplicati/Library/Main/Operation/RecreateDatabaseHandler.cs @@ -222,39 +222,39 @@ namespace Duplicati.Library.Main.Operation if (expectedmetablocks <= 1) expectedmetablocklisthashes = 0; var metadataid = long.MinValue; - if (fe.Type == FilelistEntryType.Folder) + switch (fe.Type) { - metadataid = restoredb.AddMetadataset(fe.Metahash, fe.Metasize, fe.MetaBlocklistHashes, expectedmetablocklisthashes, tr); - restoredb.AddDirectoryEntry(filesetid, fe.Path, fe.Time, metadataid, tr); - } - else if (fe.Type == FilelistEntryType.File) - { - var expectedblocks = (fe.Size + blocksize - 1) / blocksize; - var expectedblocklisthashes = (expectedblocks + hashes_pr_block - 1) / hashes_pr_block; - if (expectedblocks <= 1) expectedblocklisthashes = 0; + case FilelistEntryType.Folder: + metadataid = restoredb.AddMetadataset(fe.Metahash, fe.Metasize, fe.MetaBlocklistHashes, expectedmetablocklisthashes, tr); + restoredb.AddDirectoryEntry(filesetid, fe.Path, fe.Time, metadataid, tr); + break; + case FilelistEntryType.File: + var expectedblocks = (fe.Size + blocksize - 1) / blocksize; + var expectedblocklisthashes = (expectedblocks + hashes_pr_block - 1) / hashes_pr_block; + if (expectedblocks <= 1) expectedblocklisthashes = 0; - var blocksetid = restoredb.AddBlockset(fe.Hash, fe.Size, fe.BlocklistHashes, expectedblocklisthashes, tr); - metadataid = restoredb.AddMetadataset(fe.Metahash, fe.Metasize, fe.MetaBlocklistHashes, expectedmetablocklisthashes, tr); - restoredb.AddFileEntry(filesetid, fe.Path, fe.Time, blocksetid, metadataid, tr); - - if (fe.Size <= blocksize) - { - if (!string.IsNullOrWhiteSpace(fe.Blockhash)) - restoredb.AddSmallBlocksetLink(fe.Hash, fe.Blockhash, fe.Blocksize, tr); - else if (m_options.BlockHashAlgorithm == m_options.FileHashAlgorithm) - restoredb.AddSmallBlocksetLink(fe.Hash, fe.Hash, fe.Size, tr); - else - m_result.AddWarning(string.Format("No block hash found for file: {0}", fe.Path), null); - } - } - else if (fe.Type == FilelistEntryType.Symlink) - { - metadataid = restoredb.AddMetadataset(fe.Metahash, fe.Metasize, fe.MetaBlocklistHashes, expectedmetablocklisthashes, tr); - restoredb.AddSymlinkEntry(filesetid, fe.Path, fe.Time, metadataid, tr); - } - else - { - m_result.AddWarning(string.Format("Skipping file-entry with unknown type {0}: {1} ", fe.Type, fe.Path), null); + var blocksetid = restoredb.AddBlockset(fe.Hash, fe.Size, fe.BlocklistHashes, expectedblocklisthashes, tr); + metadataid = restoredb.AddMetadataset(fe.Metahash, fe.Metasize, fe.MetaBlocklistHashes, expectedmetablocklisthashes, tr); + restoredb.AddFileEntry(filesetid, fe.Path, fe.Time, blocksetid, metadataid, tr); + + if (fe.Size <= blocksize) + { + if (!string.IsNullOrWhiteSpace(fe.Blockhash)) + restoredb.AddSmallBlocksetLink(fe.Hash, fe.Blockhash, fe.Blocksize, tr); + else if (m_options.BlockHashAlgorithm == m_options.FileHashAlgorithm) + restoredb.AddSmallBlocksetLink(fe.Hash, fe.Hash, fe.Size, tr); + else + m_result.AddWarning(string.Format("No block hash found for file: {0}", fe.Path), null); + } + + break; + case FilelistEntryType.Symlink: + metadataid = restoredb.AddMetadataset(fe.Metahash, fe.Metasize, fe.MetaBlocklistHashes, expectedmetablocklisthashes, tr); + restoredb.AddSymlinkEntry(filesetid, fe.Path, fe.Time, metadataid, tr); + break; + default: + m_result.AddWarning(string.Format("Skipping file-entry with unknown type {0}: {1} ", fe.Type, fe.Path), null); + break; } if (fe.Metasize <= blocksize && (fe.Type == FilelistEntryType.Folder || fe.Type == FilelistEntryType.File || fe.Type == FilelistEntryType.Symlink))