Avoid using a double pointer with git_branch_name

This commit is contained in:
Matt Rubin 2016-12-17 01:16:17 -05:00
parent 755dfe08f6
commit 6244bdfdc6

View File

@ -96,14 +96,12 @@ public struct Branch: ReferenceType {
/// ///
/// Returns `nil` if the pointer isn't a branch. /// Returns `nil` if the pointer isn't a branch.
public init?(_ pointer: OpaquePointer) { public init?(_ pointer: OpaquePointer) {
let namePointer = UnsafeMutablePointer<UnsafePointer<Int8>?>.allocate(capacity: 1) var namePointer: UnsafePointer<Int8>? = nil
let success = git_branch_name(namePointer, pointer) let success = git_branch_name(&namePointer, pointer)
if success != GIT_OK.rawValue { if success != GIT_OK.rawValue {
namePointer.deallocate(capacity: 1)
return nil return nil
} }
name = String(validatingUTF8: namePointer.pointee!)! name = String(validatingUTF8: namePointer!)!
namePointer.deallocate(capacity: 1)
longName = String(validatingUTF8: git_reference_name(pointer))! longName = String(validatingUTF8: git_reference_name(pointer))!