소스 검색

Uses `reduce(into:,_)` instead of reduce(_,_)` to avoid intermediate arrays allocations

Valeriy Van 5 년 전
부모
커밋
165e8b0dff
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      Sources/CryptoSwift/SHA3.swift

+ 2 - 2
Sources/CryptoSwift/SHA3.swift

@@ -275,8 +275,8 @@ extension SHA3: Updatable {
     self.accumulated.removeFirst(processedBytes)
     self.accumulated.removeFirst(processedBytes)
 
 
     // TODO: verify performance, reduce vs for..in
     // TODO: verify performance, reduce vs for..in
-    let result = self.accumulatedHash.reduce(Array<UInt8>()) { (result, value) -> Array<UInt8> in
-      result + value.bigEndian.bytes()
+    let result = self.accumulatedHash.reduce(into: Array<UInt8>()) { (result, value) in
+      result += value.bigEndian.bytes()
     }
     }
 
 
     // reset hash value for instance
     // reset hash value for instance