diff --git a/SwiftGit2/Repository.swift b/SwiftGit2/Repository.swift index f7efd33..bb3fa8e 100644 --- a/SwiftGit2/Repository.swift +++ b/SwiftGit2/Repository.swift @@ -671,7 +671,7 @@ final public class Repository { // MARK: - Status - public func getRepositoryStatus() -> [StatusEntry] { + public func getRepositoryStatus() -> Result<[StatusEntry], NSError> { var returnArray = [StatusEntry]() @@ -681,13 +681,16 @@ final public class Repository { var options = pointer.move() pointer.deallocate(capacity: 1) - var status: OpaquePointer? = nil - git_status_list_new(&status, self.pointer, &options) + var unsafeStatus: OpaquePointer? = nil + let statusResult = git_status_list_new(&unsafeStatus, self.pointer, &options) + guard statusResult == GIT_OK.rawValue, let unwrapStatusResult = unsafeStatus else { + return Result.failure(NSError(gitError: statusResult, pointOfFailure: "git_status_list_new")) + } - let count = git_status_list_entrycount(status) + let count = git_status_list_entrycount(unwrapStatusResult) for i in 0.. Status { diff --git a/SwiftGit2Tests/RepositorySpec.swift b/SwiftGit2Tests/RepositorySpec.swift index 5ae31ba..db1569b 100644 --- a/SwiftGit2Tests/RepositorySpec.swift +++ b/SwiftGit2Tests/RepositorySpec.swift @@ -651,7 +651,7 @@ class RepositorySpec: QuickSpec { let status = repo.getRepositoryStatus() - expect(status.count).to(equal(0)) + expect(status.value?.count).to(equal(0)) let repoWithStatus = Fixtures.sharedInstance.repository(named: "repository-with-status") let branchWithStatus = repoWithStatus.localBranch(named: "master").value! @@ -659,7 +659,7 @@ class RepositorySpec: QuickSpec { let statusWithStatus = repoWithStatus.getRepositoryStatus() - expect(statusWithStatus.count).to(equal(5)) + expect(statusWithStatus.value?.count).to(equal(5)) } it("Should have accurate delta information") {