Skip to content

Commit 31fbd20

Browse files
authored
Merge pull request #902 from naithar/defer-usage
2 parents e3c5d7a + 7b5e6f9 commit 31fbd20

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

Foundation/NSKeyedArchiver.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,13 +159,13 @@ open class NSKeyedArchiver : NSCoder {
159159
return false
160160
}
161161

162+
defer { CFWriteStreamClose(writeStream) }
163+
162164
let keyedArchiver = NSKeyedArchiver(output: writeStream)
163165

164166
keyedArchiver.encode(rootObject, forKey: NSKeyedArchiveRootObjectKey)
165167
keyedArchiver.finishEncoding()
166168
finishedEncoding = keyedArchiver._flags.contains(ArchiverFlags.finishedEncoding)
167-
168-
CFWriteStreamClose(writeStream)
169169

170170
return finishedEncoding
171171
}

Foundation/NSKeyedUnarchiver.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,15 @@ open class NSKeyedUnarchiver : NSCoder {
7474
return nil
7575
}
7676

77+
defer { CFReadStreamClose(readStream) }
78+
7779
let keyedUnarchiver = NSKeyedUnarchiver(stream: Stream.stream(readStream))
7880
do {
7981
try root = keyedUnarchiver.decodeTopLevelObject(forKey: NSKeyedArchiveRootObjectKey)
8082
keyedUnarchiver.finishDecoding()
8183
} catch {
8284
}
8385

84-
CFReadStreamClose(readStream)
85-
8686
return root
8787
}
8888

Foundation/NSXMLParser.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -559,9 +559,12 @@ open class XMLParser : NSObject {
559559
internal func parseFromStream() -> Bool {
560560
var result = true
561561
XMLParser.setCurrentParser(self)
562+
defer { XMLParser.setCurrentParser(nil) }
562563
if let stream = _stream {
563564
stream.open()
565+
defer { stream.close() }
564566
let buffer = malloc(_chunkSize)!.bindMemory(to: UInt8.self, capacity: _chunkSize)
567+
defer { free(buffer) }
565568
var len = stream.read(buffer, maxLength: _chunkSize)
566569
if len != -1 {
567570
while len > 0 {
@@ -572,10 +575,9 @@ open class XMLParser : NSObject {
572575
} else {
573576
result = false
574577
}
575-
free(buffer)
576-
stream.close()
577578
} else if let data = _data {
578579
let buffer = malloc(_chunkSize)!.bindMemory(to: UInt8.self, capacity: _chunkSize)
580+
defer { free(buffer) }
579581
var range = NSMakeRange(0, min(_chunkSize, data.count))
580582
while result {
581583
let chunk = data.withUnsafeBytes { (buffer: UnsafePointer<UInt8>) -> Data in
@@ -588,11 +590,9 @@ open class XMLParser : NSObject {
588590
}
589591
range = NSMakeRange(range.location + range.length, min(_chunkSize, data.count - (range.location + range.length)))
590592
}
591-
free(buffer)
592593
} else {
593594
result = false
594595
}
595-
XMLParser.setCurrentParser(nil)
596596
return result
597597
}
598598

0 commit comments

Comments
 (0)