Skip to content

Commit f6f391b

Browse files
authored
Merge pull request #14894 from apple/revert-14868-kill-2-defers
2 parents 6d1f4f0 + 5a61dc1 commit f6f391b

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

stdlib/public/core/ManagedBuffer.swift

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,9 +118,8 @@ open class ManagedBuffer<Header, Element> {
118118
public final func withUnsafeMutablePointers<R>(
119119
_ body: (UnsafeMutablePointer<Header>, UnsafeMutablePointer<Element>) throws -> R
120120
) rethrows -> R {
121-
let r = try body(headerAddress, firstElementAddress)
122-
_fixLifetime(self)
123-
return r
121+
defer { _fixLifetime(self) }
122+
return try body(headerAddress, firstElementAddress)
124123
}
125124

126125
/// The stored `Header` instance.
@@ -304,9 +303,8 @@ public struct ManagedBufferPointer<Header, Element> : Equatable {
304303
public func withUnsafeMutablePointers<R>(
305304
_ body: (UnsafeMutablePointer<Header>, UnsafeMutablePointer<Element>) throws -> R
306305
) rethrows -> R {
307-
let r = try body(_headerPointer, _elementPointer)
308-
_fixLifetime(_nativeBuffer)
309-
return r
306+
defer { _fixLifetime(_nativeBuffer) }
307+
return try body(_headerPointer, _elementPointer)
310308
}
311309

312310
/// Returns `true` iff `self` holds the only strong reference to its buffer.

0 commit comments

Comments
 (0)