소스 검색

switch to using

Luke Pulverenti 8 년 전
부모
커밋
b5b3d8a30c
1개의 변경된 파일22개의 추가작업 그리고 20개의 파일을 삭제
  1. 22 20
      OpenSubtitlesHandler/MovieHasher.cs

+ 22 - 20
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)