Преглед изворни кода

Merge pull request #215 from oscart/develop

Refactored SHA2 final hash generation to solve "Expression was too complex" error.
Marcin Krzyzanowski пре 9 година
родитељ
комит
1f439767c7
1 измењених фајлова са 7 додато и 2 уклоњено
  1. 7 2
      Sources/CryptoSwift/SHA2.swift

+ 7 - 2
Sources/CryptoSwift/SHA2.swift

@@ -273,8 +273,13 @@ final class SHA2 : HashProtocol {
         result.reserveCapacity(hh.count / 4)
         result.reserveCapacity(hh.count / 4)
         variant.resultingArray(hh).forEach {
         variant.resultingArray(hh).forEach {
             let item = $0.bigEndian
             let item = $0.bigEndian
-            result += [UInt8(item & 0xff), UInt8((item >> 8) & 0xff), UInt8((item >> 16) & 0xff), UInt8((item >> 24) & 0xff),
-                       UInt8((item >> 32) & 0xff),UInt8((item >> 40) & 0xff), UInt8((item >> 48) & 0xff), UInt8((item >> 56) & 0xff)]
+            var partialResult = [UInt8]()
+            partialResult.reserveCapacity(8)
+            for i in 0..<8 {
+                let shift = UInt64(8 * i)
+                partialResult.append(UInt8((item >> shift) & 0xff))
+            }
+            result += partialResult
         }
         }
         return result
         return result
     }
     }