mirror of
https://github.com/gosticks/SwiftGit2.git
synced 2025-10-16 11:55:34 +00:00
Use non-Optional pointers wherever possible
This commit is contained in:
parent
003464dde8
commit
755dfe08f6
@ -21,8 +21,8 @@ public enum Credentials {
|
|||||||
case Plaintext(username: String, password: String)
|
case Plaintext(username: String, password: String)
|
||||||
case SSHMemory(username: String, publicKey: String, privateKey: String, passphrase: String)
|
case SSHMemory(username: String, publicKey: String, privateKey: String, passphrase: String)
|
||||||
|
|
||||||
internal static func fromPointer(_ pointer: UnsafeMutableRawPointer?) -> Credentials {
|
internal static func fromPointer(_ pointer: UnsafeMutableRawPointer) -> Credentials {
|
||||||
return Unmanaged<Wrapper<Credentials>>.fromOpaque(UnsafeRawPointer(pointer)!).takeRetainedValue().value
|
return Unmanaged<Wrapper<Credentials>>.fromOpaque(UnsafeRawPointer(pointer)).takeRetainedValue().value
|
||||||
}
|
}
|
||||||
|
|
||||||
internal func toPointer() -> UnsafeMutableRawPointer {
|
internal func toPointer() -> UnsafeMutableRawPointer {
|
||||||
@ -36,7 +36,7 @@ internal func credentialsCallback(cred: UnsafeMutablePointer<UnsafeMutablePointe
|
|||||||
payload: UnsafeMutableRawPointer?) -> Int32 {
|
payload: UnsafeMutableRawPointer?) -> Int32 {
|
||||||
let result: Int32
|
let result: Int32
|
||||||
|
|
||||||
switch Credentials.fromPointer(payload) {
|
switch Credentials.fromPointer(payload!) {
|
||||||
case .Default():
|
case .Default():
|
||||||
result = git_cred_default_new(cred)
|
result = git_cred_default_new(cred)
|
||||||
case .Plaintext(let username, let password):
|
case .Plaintext(let username, let password):
|
||||||
|
|||||||
@ -17,7 +17,7 @@ public protocol ObjectType {
|
|||||||
var oid: OID { get }
|
var oid: OID { get }
|
||||||
|
|
||||||
/// Create an instance with the underlying libgit2 type.
|
/// Create an instance with the underlying libgit2 type.
|
||||||
init(_ pointer: OpaquePointer?)
|
init(_ pointer: OpaquePointer)
|
||||||
}
|
}
|
||||||
|
|
||||||
public func == <O: ObjectType>(lhs: O, rhs: O) -> Bool {
|
public func == <O: ObjectType>(lhs: O, rhs: O) -> Bool {
|
||||||
@ -82,7 +82,7 @@ public struct Commit: ObjectType {
|
|||||||
public let message: String
|
public let message: String
|
||||||
|
|
||||||
/// Create an instance with a libgit2 `git_commit` object.
|
/// Create an instance with a libgit2 `git_commit` object.
|
||||||
public init(_ pointer: OpaquePointer?) {
|
public init(_ pointer: OpaquePointer) {
|
||||||
oid = OID(git_object_id(pointer).pointee)
|
oid = OID(git_object_id(pointer).pointee)
|
||||||
message = String(validatingUTF8: git_commit_message(pointer))!
|
message = String(validatingUTF8: git_commit_message(pointer))!
|
||||||
author = Signature(git_commit_author(pointer).pointee)
|
author = Signature(git_commit_author(pointer).pointee)
|
||||||
@ -117,7 +117,7 @@ public struct Tree: ObjectType {
|
|||||||
public let name: String
|
public let name: String
|
||||||
|
|
||||||
/// Create an instance with a libgit2 `git_tree_entry`.
|
/// Create an instance with a libgit2 `git_tree_entry`.
|
||||||
public init(_ pointer: OpaquePointer?) {
|
public init(_ pointer: OpaquePointer) {
|
||||||
let oid = OID(git_tree_entry_id(pointer).pointee)
|
let oid = OID(git_tree_entry_id(pointer).pointee)
|
||||||
attributes = Int32(git_tree_entry_filemode(pointer).rawValue)
|
attributes = Int32(git_tree_entry_filemode(pointer).rawValue)
|
||||||
object = Pointer(oid: oid, type: git_tree_entry_type(pointer))!
|
object = Pointer(oid: oid, type: git_tree_entry_type(pointer))!
|
||||||
@ -139,12 +139,12 @@ public struct Tree: ObjectType {
|
|||||||
public let entries: [String: Entry]
|
public let entries: [String: Entry]
|
||||||
|
|
||||||
/// Create an instance with a libgit2 `git_tree`.
|
/// Create an instance with a libgit2 `git_tree`.
|
||||||
public init(_ pointer: OpaquePointer?) {
|
public init(_ pointer: OpaquePointer) {
|
||||||
oid = OID(git_object_id(pointer).pointee)
|
oid = OID(git_object_id(pointer).pointee)
|
||||||
|
|
||||||
var entries: [String: Entry] = [:]
|
var entries: [String: Entry] = [:]
|
||||||
for idx in 0..<git_tree_entrycount(pointer) {
|
for idx in 0..<git_tree_entrycount(pointer) {
|
||||||
let entry = Entry(git_tree_entry_byindex(pointer, idx))
|
let entry = Entry(git_tree_entry_byindex(pointer, idx)!)
|
||||||
entries[entry.name] = entry
|
entries[entry.name] = entry
|
||||||
}
|
}
|
||||||
self.entries = entries
|
self.entries = entries
|
||||||
@ -186,7 +186,7 @@ public struct Blob: ObjectType {
|
|||||||
public let data: Data
|
public let data: Data
|
||||||
|
|
||||||
/// Create an instance with a libgit2 `git_blob`.
|
/// Create an instance with a libgit2 `git_blob`.
|
||||||
public init(_ pointer: OpaquePointer?) {
|
public init(_ pointer: OpaquePointer) {
|
||||||
oid = OID(git_object_id(pointer).pointee)
|
oid = OID(git_object_id(pointer).pointee)
|
||||||
|
|
||||||
let length = Int(git_blob_rawsize(pointer))
|
let length = Int(git_blob_rawsize(pointer))
|
||||||
@ -220,7 +220,7 @@ public struct Tag: ObjectType {
|
|||||||
public let message: String
|
public let message: String
|
||||||
|
|
||||||
/// Create an instance with a libgit2 `git_tag`.
|
/// Create an instance with a libgit2 `git_tag`.
|
||||||
public init(_ pointer: OpaquePointer?) {
|
public init(_ pointer: OpaquePointer) {
|
||||||
oid = OID(git_object_id(pointer).pointee)
|
oid = OID(git_object_id(pointer).pointee)
|
||||||
let targetOID = OID(git_tag_target_id(pointer).pointee)
|
let targetOID = OID(git_tag_target_id(pointer).pointee)
|
||||||
target = Pointer(oid: targetOID, type: git_tag_target_type(pointer))!
|
target = Pointer(oid: targetOID, type: git_tag_target_type(pointer))!
|
||||||
|
|||||||
@ -26,7 +26,7 @@ public func ==<T: ReferenceType>(lhs: T, rhs: T) -> Bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Create a Reference, Branch, or TagReference from a libgit2 `git_reference`.
|
/// Create a Reference, Branch, or TagReference from a libgit2 `git_reference`.
|
||||||
internal func referenceWithLibGit2Reference(_ pointer: OpaquePointer?) -> ReferenceType {
|
internal func referenceWithLibGit2Reference(_ pointer: OpaquePointer) -> ReferenceType {
|
||||||
if git_reference_is_branch(pointer) != 0 || git_reference_is_remote(pointer) != 0 {
|
if git_reference_is_branch(pointer) != 0 || git_reference_is_remote(pointer) != 0 {
|
||||||
return Branch(pointer)!
|
return Branch(pointer)!
|
||||||
} else if git_reference_is_tag(pointer) != 0 {
|
} else if git_reference_is_tag(pointer) != 0 {
|
||||||
@ -48,7 +48,7 @@ public struct Reference: ReferenceType {
|
|||||||
public let oid: OID
|
public let oid: OID
|
||||||
|
|
||||||
/// Create an instance with a libgit2 `git_reference` object.
|
/// Create an instance with a libgit2 `git_reference` object.
|
||||||
public init(_ pointer: OpaquePointer?) {
|
public init(_ pointer: OpaquePointer) {
|
||||||
let shorthand = String(validatingUTF8: git_reference_shorthand(pointer))!
|
let shorthand = String(validatingUTF8: git_reference_shorthand(pointer))!
|
||||||
longName = String(validatingUTF8: git_reference_name(pointer))!
|
longName = String(validatingUTF8: git_reference_name(pointer))!
|
||||||
shortName = (shorthand == longName ? nil : shorthand)
|
shortName = (shorthand == longName ? nil : shorthand)
|
||||||
@ -95,7 +95,7 @@ public struct Branch: ReferenceType {
|
|||||||
/// Create an instance with a libgit2 `git_reference` object.
|
/// Create an instance with a libgit2 `git_reference` object.
|
||||||
///
|
///
|
||||||
/// 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)
|
let namePointer = UnsafeMutablePointer<UnsafePointer<Int8>?>.allocate(capacity: 1)
|
||||||
let success = git_branch_name(namePointer, pointer)
|
let success = git_branch_name(namePointer, pointer)
|
||||||
if success != GIT_OK.rawValue {
|
if success != GIT_OK.rawValue {
|
||||||
@ -175,7 +175,7 @@ public enum TagReference: ReferenceType {
|
|||||||
/// Create an instance with a libgit2 `git_reference` object.
|
/// Create an instance with a libgit2 `git_reference` object.
|
||||||
///
|
///
|
||||||
/// 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) {
|
||||||
if git_reference_is_tag(pointer) == 0 {
|
if git_reference_is_tag(pointer) == 0 {
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
@ -187,7 +187,7 @@ public enum TagReference: ReferenceType {
|
|||||||
var pointer: OpaquePointer? = nil
|
var pointer: OpaquePointer? = nil
|
||||||
let result = git_object_lookup(&pointer, repo, &oid, GIT_OBJ_TAG)
|
let result = git_object_lookup(&pointer, repo, &oid, GIT_OBJ_TAG)
|
||||||
if result == GIT_OK.rawValue {
|
if result == GIT_OK.rawValue {
|
||||||
self = .Annotated(name, Tag(pointer))
|
self = .Annotated(name, Tag(pointer!))
|
||||||
} else {
|
} else {
|
||||||
self = .Lightweight(name, OID(oid))
|
self = .Lightweight(name, OID(oid))
|
||||||
}
|
}
|
||||||
|
|||||||
@ -19,7 +19,7 @@ public struct Remote {
|
|||||||
public let URL: String
|
public let URL: String
|
||||||
|
|
||||||
/// Create an instance with a libgit2 `git_remote`.
|
/// Create an instance with a libgit2 `git_remote`.
|
||||||
public init(_ pointer: OpaquePointer?) {
|
public init(_ pointer: OpaquePointer) {
|
||||||
name = String(validatingUTF8: git_remote_name(pointer))!
|
name = String(validatingUTF8: git_remote_name(pointer))!
|
||||||
URL = String(validatingUTF8: git_remote_url(pointer))!
|
URL = String(validatingUTF8: git_remote_url(pointer))!
|
||||||
}
|
}
|
||||||
|
|||||||
@ -111,7 +111,7 @@ final public class Repository {
|
|||||||
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_repository_open"))
|
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_repository_open"))
|
||||||
}
|
}
|
||||||
|
|
||||||
let repository = Repository(pointer)
|
let repository = Repository(pointer!)
|
||||||
return Result.success(repository)
|
return Result.success(repository)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ final public class Repository {
|
|||||||
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_clone"))
|
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_clone"))
|
||||||
}
|
}
|
||||||
|
|
||||||
let repository = Repository(pointer)
|
let repository = Repository(pointer!)
|
||||||
return Result.success(repository)
|
return Result.success(repository)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -150,7 +150,7 @@ final public class Repository {
|
|||||||
/// Create an instance with a libgit2 `git_repository` object.
|
/// Create an instance with a libgit2 `git_repository` object.
|
||||||
///
|
///
|
||||||
/// The Repository assumes ownership of the `git_repository` object.
|
/// The Repository assumes ownership of the `git_repository` object.
|
||||||
public init(_ pointer: OpaquePointer?) {
|
public init(_ pointer: OpaquePointer) {
|
||||||
self.pointer = pointer
|
self.pointer = pointer
|
||||||
|
|
||||||
let path = git_repository_workdir(pointer)
|
let path = git_repository_workdir(pointer)
|
||||||
@ -164,7 +164,7 @@ final public class Repository {
|
|||||||
// MARK: - Properties
|
// MARK: - Properties
|
||||||
|
|
||||||
/// The underlying libgit2 `git_repository` object.
|
/// The underlying libgit2 `git_repository` object.
|
||||||
public let pointer: OpaquePointer?
|
public let pointer: OpaquePointer
|
||||||
|
|
||||||
/// The URL of the repository's working directory, or `nil` if the
|
/// The URL of the repository's working directory, or `nil` if the
|
||||||
/// repository is bare.
|
/// repository is bare.
|
||||||
@ -181,7 +181,7 @@ final public class Repository {
|
|||||||
///
|
///
|
||||||
/// Returns the result of calling `transform` or an error if the object
|
/// Returns the result of calling `transform` or an error if the object
|
||||||
/// cannot be loaded.
|
/// cannot be loaded.
|
||||||
func withLibgit2Object<T>(_ oid: OID, type: git_otype, transform: (OpaquePointer?) -> Result<T, NSError>) -> Result<T, NSError> {
|
func withLibgit2Object<T>(_ oid: OID, type: git_otype, transform: (OpaquePointer) -> Result<T, NSError>) -> Result<T, NSError> {
|
||||||
var pointer: OpaquePointer? = nil
|
var pointer: OpaquePointer? = nil
|
||||||
var oid = oid.oid
|
var oid = oid.oid
|
||||||
let result = git_object_lookup(&pointer, self.pointer, &oid, type)
|
let result = git_object_lookup(&pointer, self.pointer, &oid, type)
|
||||||
@ -190,12 +190,12 @@ final public class Repository {
|
|||||||
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_object_lookup"))
|
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_object_lookup"))
|
||||||
}
|
}
|
||||||
|
|
||||||
let value = transform(pointer)
|
let value = transform(pointer!)
|
||||||
git_object_free(pointer)
|
git_object_free(pointer)
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
func withLibgit2Object<T>(_ oid: OID, type: git_otype, transform: (OpaquePointer?) -> T) -> Result<T, NSError> {
|
func withLibgit2Object<T>(_ oid: OID, type: git_otype, transform: (OpaquePointer) -> T) -> Result<T, NSError> {
|
||||||
return withLibgit2Object(oid, type: type) { Result.success(transform($0)) }
|
return withLibgit2Object(oid, type: type) { Result.success(transform($0)) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -332,7 +332,7 @@ final public class Repository {
|
|||||||
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_remote_lookup"))
|
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_remote_lookup"))
|
||||||
}
|
}
|
||||||
|
|
||||||
let value = Remote(pointer)
|
let value = Remote(pointer!)
|
||||||
git_remote_free(pointer)
|
git_remote_free(pointer)
|
||||||
return Result.success(value)
|
return Result.success(value)
|
||||||
}
|
}
|
||||||
@ -380,7 +380,7 @@ final public class Repository {
|
|||||||
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_reference_lookup"))
|
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_reference_lookup"))
|
||||||
}
|
}
|
||||||
|
|
||||||
let value = referenceWithLibGit2Reference(pointer)
|
let value = referenceWithLibGit2Reference(pointer!)
|
||||||
git_reference_free(pointer)
|
git_reference_free(pointer)
|
||||||
return Result.success(value)
|
return Result.success(value)
|
||||||
}
|
}
|
||||||
@ -435,7 +435,7 @@ final public class Repository {
|
|||||||
if result != GIT_OK.rawValue {
|
if result != GIT_OK.rawValue {
|
||||||
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_repository_head"))
|
return Result.failure(libGit2Error(result, libGit2PointOfFailure: "git_repository_head"))
|
||||||
}
|
}
|
||||||
let value = referenceWithLibGit2Reference(pointer)
|
let value = referenceWithLibGit2Reference(pointer!)
|
||||||
git_reference_free(pointer)
|
git_reference_free(pointer)
|
||||||
return Result.success(value)
|
return Result.success(value)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,13 +12,13 @@ import Nimble
|
|||||||
import Quick
|
import Quick
|
||||||
import libgit2
|
import libgit2
|
||||||
|
|
||||||
func from_git_object<T>(_ repository: Repository, oid: OID, f: (OpaquePointer?) -> T) -> T {
|
func from_git_object<T>(_ repository: Repository, oid: OID, f: (OpaquePointer) -> T) -> T {
|
||||||
let repository = repository.pointer
|
let repository = repository.pointer
|
||||||
var oid = oid.oid
|
var oid = oid.oid
|
||||||
|
|
||||||
var pointer: OpaquePointer? = nil
|
var pointer: OpaquePointer? = nil
|
||||||
git_object_lookup(&pointer, repository, &oid, GIT_OBJ_ANY)
|
git_object_lookup(&pointer, repository, &oid, GIT_OBJ_ANY)
|
||||||
let result = f(pointer)
|
let result = f(pointer!)
|
||||||
git_object_free(pointer)
|
git_object_free(pointer)
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|||||||
@ -12,12 +12,12 @@ import Nimble
|
|||||||
import Quick
|
import Quick
|
||||||
import libgit2
|
import libgit2
|
||||||
|
|
||||||
func from_git_reference<T>(_ repository: Repository, name: String, f: (OpaquePointer?) -> T) -> T {
|
func from_git_reference<T>(_ repository: Repository, name: String, f: (OpaquePointer) -> T) -> T {
|
||||||
let repository = repository.pointer
|
let repository = repository.pointer
|
||||||
|
|
||||||
var pointer: OpaquePointer? = nil
|
var pointer: OpaquePointer? = nil
|
||||||
git_reference_lookup(&pointer, repository, name)
|
git_reference_lookup(&pointer, repository, name)
|
||||||
let result = f(pointer)
|
let result = f(pointer!)
|
||||||
git_object_free(pointer)
|
git_object_free(pointer)
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|||||||
@ -12,12 +12,12 @@ import Nimble
|
|||||||
import Quick
|
import Quick
|
||||||
import libgit2
|
import libgit2
|
||||||
|
|
||||||
func with_git_remote<T>(_ repository: Repository, name: String, f: (OpaquePointer?) -> T) -> T {
|
func with_git_remote<T>(_ repository: Repository, name: String, f: (OpaquePointer) -> T) -> T {
|
||||||
let repository = repository.pointer
|
let repository = repository.pointer
|
||||||
|
|
||||||
var pointer: OpaquePointer? = nil
|
var pointer: OpaquePointer? = nil
|
||||||
git_remote_lookup(&pointer, repository, name)
|
git_remote_lookup(&pointer, repository, name)
|
||||||
let result = f(pointer)
|
let result = f(pointer!)
|
||||||
git_object_free(pointer)
|
git_object_free(pointer)
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user