aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--OpenSubtitlesHandler/MovieHasher.cs42
1 files changed, 22 insertions, 20 deletions
diff --git a/OpenSubtitlesHandler/MovieHasher.cs b/OpenSubtitlesHandler/MovieHasher.cs
index 89301191f..57be9ab28 100644
--- a/OpenSubtitlesHandler/MovieHasher.cs
+++ b/OpenSubtitlesHandler/MovieHasher.cs
@@ -8,29 +8,31 @@ namespace OpenSubtitlesHandler
{
public static byte[] ComputeMovieHash(Stream input)
{
- long lhash, streamsize;
- streamsize = input.Length;
- lhash = streamsize;
-
- long i = 0;
- byte[] buffer = new byte[sizeof(long)];
- while (i < 65536 / sizeof(long) && (input.Read(buffer, 0, sizeof(long)) > 0))
+ using (input)
{
- i++;
- lhash += BitConverter.ToInt64(buffer, 0);
- }
+ long lhash, streamsize;
+ streamsize = input.Length;
+ lhash = streamsize;
- input.Position = Math.Max(0, streamsize - 65536);
- i = 0;
- while (i < 65536 / sizeof(long) && (input.Read(buffer, 0, sizeof(long)) > 0))
- {
- i++;
- lhash += BitConverter.ToInt64(buffer, 0);
+ long i = 0;
+ byte[] buffer = new byte[sizeof(long)];
+ while (i < 65536 / sizeof(long) && (input.Read(buffer, 0, sizeof(long)) > 0))
+ {
+ i++;
+ lhash += BitConverter.ToInt64(buffer, 0);
+ }
+
+ input.Position = Math.Max(0, streamsize - 65536);
+ i = 0;
+ while (i < 65536 / sizeof(long) && (input.Read(buffer, 0, sizeof(long)) > 0))
+ {
+ i++;
+ lhash += BitConverter.ToInt64(buffer, 0);
+ }
+ byte[] result = BitConverter.GetBytes(lhash);
+ Array.Reverse(result);
+ return result;
}
- input.Close();
- byte[] result = BitConverter.GetBytes(lhash);
- Array.Reverse(result);
- return result;
}
public static string ToHexadecimal(byte[] bytes)