From 3db2d73e6e37bf72d07f51cd0a0b51ffaec041b0 Mon Sep 17 00:00:00 2001 From: Yifei Teng Date: Tue, 1 May 2018 13:39:36 -0500 Subject: [PATCH] be more clear with naming and additional guard --- SwiftGit2/Repository.swift | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/SwiftGit2/Repository.swift b/SwiftGit2/Repository.swift index 12fd790..e8a04b2 100644 --- a/SwiftGit2/Repository.swift +++ b/SwiftGit2/Repository.swift @@ -635,16 +635,20 @@ final public class Repository { git_message_prettify(&msgBuf, message, 0, /* ascii for # */ 35) defer { git_buf_free(&msgBuf) } - // use HEAD as parent - var parentC: [OpaquePointer?] = [] + // libgit2 expects a C-like array of parent git_commit pointer + var parentGitCommits: [OpaquePointer?] = [] for parentCommit in parents { var parent: OpaquePointer? = nil var oid = parentCommit.oid.oid - git_commit_lookup(&parent, self.pointer, &oid) - parentC.append(parent!) + let lookupResult = git_commit_lookup(&parent, self.pointer, &oid) + guard lookupResult == GIT_OK.rawValue else { + let err = NSError(gitError: lookupResult, pointOfFailure: "git_commit_lookup") + return .failure(err) + } + parentGitCommits.append(parent!) } - let parentsContiguous = ContiguousArray(parentC) + let parentsContiguous = ContiguousArray(parentGitCommits) return parentsContiguous.withUnsafeBufferPointer { unsafeBuffer in var commitOID = git_oid() let parentsPtr = UnsafeMutablePointer(mutating: unsafeBuffer.baseAddress)