From 212f1ea1cffe5bdef92530c08f3a0d8d16b1b9cd Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sat, 27 May 2017 18:20:27 +0100 Subject: [PATCH] Refactor: Moved CompareBytes to Helpers. --- DiscImageChef.Helpers/ChangeLog | 6 ++ DiscImageChef.Helpers/CompareBytes.cs | 66 +++++++++++++++++++ .../DiscImageChef.Helpers.csproj | 1 + DiscImageChef/ChangeLog | 5 ++ DiscImageChef/Commands/Compare.cs | 31 +-------- 5 files changed, 79 insertions(+), 30 deletions(-) create mode 100644 DiscImageChef.Helpers/CompareBytes.cs diff --git a/DiscImageChef.Helpers/ChangeLog b/DiscImageChef.Helpers/ChangeLog index 5762b8d5..5234cf64 100644 --- a/DiscImageChef.Helpers/ChangeLog +++ b/DiscImageChef.Helpers/ChangeLog @@ -1,3 +1,9 @@ +2017-05-27 Natalia Portillo + + * CompareBytes.cs: + * DiscImageChef.Helpers.csproj: Refactor: Moved CompareBytes + to Helpers. + 2017-05-19 Natalia Portillo * Swapping.cs: diff --git a/DiscImageChef.Helpers/CompareBytes.cs b/DiscImageChef.Helpers/CompareBytes.cs new file mode 100644 index 00000000..74413d86 --- /dev/null +++ b/DiscImageChef.Helpers/CompareBytes.cs @@ -0,0 +1,66 @@ +// /*************************************************************************** +// The Disc Image Chef +// ---------------------------------------------------------------------------- +// +// Filename : CompareBytes.cs +// Author(s) : Natalia Portillo +// +// Component : Component +// +// --[ Description ] ---------------------------------------------------------- +// +// Description +// +// --[ License ] -------------------------------------------------------------- +// +// This library is free software; you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation; either version 2.1 of the +// License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, see . +// +// ---------------------------------------------------------------------------- +// Copyright © 2011-2017 Natalia Portillo +// ****************************************************************************/ + +namespace DiscImageChef +{ + public static partial class ArrayHelpers + { + public static void CompareBytes(out bool different, out bool sameSize, byte[] compareArray1, byte[] compareArray2) + { + different = false; + sameSize = true; + + long leastBytes; + if(compareArray1.LongLength < compareArray2.LongLength) + { + sameSize = false; + leastBytes = compareArray1.LongLength; + } + else if(compareArray1.LongLength > compareArray2.LongLength) + { + sameSize = false; + leastBytes = compareArray2.LongLength; + } + else + leastBytes = compareArray1.LongLength; + + for(long i = 0; i < leastBytes; i++) + { + if(compareArray1[i] != compareArray2[i]) + { + different = true; + return; + } + } + } + } +} diff --git a/DiscImageChef.Helpers/DiscImageChef.Helpers.csproj b/DiscImageChef.Helpers/DiscImageChef.Helpers.csproj index 832c00a9..13ee39b3 100644 --- a/DiscImageChef.Helpers/DiscImageChef.Helpers.csproj +++ b/DiscImageChef.Helpers/DiscImageChef.Helpers.csproj @@ -44,6 +44,7 @@ + diff --git a/DiscImageChef/ChangeLog b/DiscImageChef/ChangeLog index 0a0fa430..423cb982 100644 --- a/DiscImageChef/ChangeLog +++ b/DiscImageChef/ChangeLog @@ -1,3 +1,8 @@ +2017-05-27 Natalia Portillo + + * Commands/Compare.cs: + Refactor: Moved CompareBytes to Helpers. + 2017-05-27 Natalia Portillo * Commands/Checksum.cs: diff --git a/DiscImageChef/Commands/Compare.cs b/DiscImageChef/Commands/Compare.cs index 5627586f..ffb10fe4 100644 --- a/DiscImageChef/Commands/Compare.cs +++ b/DiscImageChef/Commands/Compare.cs @@ -427,7 +427,7 @@ namespace DiscImageChef.Commands byte[] image1Sector = input1Format.ReadSector(sector); byte[] image2Sector = input2Format.ReadSector(sector); bool different, sameSize; - CompareBytes(out different, out sameSize, image1Sector, image2Sector); + ArrayHelpers.CompareBytes(out different, out sameSize, image1Sector, image2Sector); if(different) { imagesDiffer = true; @@ -455,35 +455,6 @@ namespace DiscImageChef.Commands Core.Statistics.AddCommand("compare"); } - - static void CompareBytes(out bool different, out bool sameSize, byte[] compareArray1, byte[] compareArray2) - { - different = false; - sameSize = true; - - long leastBytes; - if(compareArray1.LongLength < compareArray2.LongLength) - { - sameSize = false; - leastBytes = compareArray1.LongLength; - } - else if(compareArray1.LongLength > compareArray2.LongLength) - { - sameSize = false; - leastBytes = compareArray2.LongLength; - } - else - leastBytes = compareArray1.LongLength; - - for(long i = 0; i < leastBytes; i++) - { - if(compareArray1[i] != compareArray2[i]) - { - different = true; - return; - } - } - } } }