Skip to content

Commit 760d598

Browse files
authored
Merge pull request #166 from IntrepidPursuits/pr/iterator
Fix iterator issue for A6 processors
2 parents 0abedc0 + df176a0 commit 760d598

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

Intrepid.podspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "Intrepid"
3-
s.version = "0.13.1"
3+
s.version = "0.13.2"
44
s.summary = "Swift Bag"
55
s.description = <<-DESC
66
Collection of extensions and utility classes by and for the developers at Intrepid Pursuits.

SwiftWisdom/Core/Foundation/Data/Data+Extensions.swift

+7-9
Original file line numberDiff line numberDiff line change
@@ -142,17 +142,15 @@ extension Data {
142142

143143
extension Data {
144144
public func ip_segmentIterator(start: Int = 0, chunkLength: Int) -> AnyIterator<Data> {
145-
let segmentToWrite = ip_suffix(from: start)
146-
var mutable = segmentToWrite
147-
let range = 0..<chunkLength
145+
var iteratedData = ip_suffix(from: start)
148146
return AnyIterator {
149147
let nextData: Data?
150-
if let remaining = mutable, remaining.count >= chunkLength {
151-
nextData = mutable?[ip_safely:range]
152-
mutable?.removeSubrange(range)
153-
} else if let remaining = mutable, remaining.count > 0 {
154-
nextData = mutable
155-
mutable?.count = 0
148+
if let remaining = iteratedData, remaining.count >= chunkLength {
149+
nextData = remaining.prefix(chunkLength)
150+
iteratedData?.removeFirst(chunkLength)
151+
} else if let remaining = iteratedData, remaining.count > 0 {
152+
nextData = remaining
153+
iteratedData?.removeAll()
156154
} else {
157155
nextData = nil
158156
}

0 commit comments

Comments
 (0)