mirror of
https://github.com/gosticks/SwiftGit2.git
synced 2025-10-16 11:55:34 +00:00
Use COpaquePointer directly
This commit is contained in:
parent
7ee768f37f
commit
66ba594070
@ -107,15 +107,13 @@ public struct Branch: ReferenceType {
|
||||
|
||||
var oid: OID
|
||||
if git_reference_type(pointer).value == GIT_REF_SYMBOLIC.value {
|
||||
let resolved = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
||||
let success = git_reference_resolve(resolved, pointer)
|
||||
var resolved: COpaquePointer = nil
|
||||
let success = git_reference_resolve(&resolved, pointer)
|
||||
if success != GIT_OK.value {
|
||||
resolved.dealloc(1)
|
||||
return nil
|
||||
}
|
||||
oid = OID(git_reference_target(resolved.memory).memory)
|
||||
git_reference_free(resolved.memory)
|
||||
resolved.dealloc(1)
|
||||
oid = OID(git_reference_target(resolved).memory)
|
||||
git_reference_free(resolved)
|
||||
} else {
|
||||
oid = OID(git_reference_target(pointer).memory)
|
||||
}
|
||||
@ -184,15 +182,14 @@ public enum TagReference: ReferenceType {
|
||||
let repo = git_reference_owner(pointer)
|
||||
var oid = git_reference_target(pointer).memory
|
||||
|
||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
||||
let result = git_object_lookup(pointer, repo, &oid, GIT_OBJ_TAG)
|
||||
var pointer: COpaquePointer = nil
|
||||
let result = git_object_lookup(&pointer, repo, &oid, GIT_OBJ_TAG)
|
||||
if result == GIT_OK.value {
|
||||
self = .Annotated(name, Tag(pointer.memory))
|
||||
self = .Annotated(name, Tag(pointer))
|
||||
} else {
|
||||
self = .Lightweight(name, OID(oid))
|
||||
}
|
||||
git_object_free(pointer.memory)
|
||||
pointer.dealloc(1)
|
||||
git_object_free(pointer)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -33,16 +33,14 @@ final public class Repository {
|
||||
///
|
||||
/// Returns a `Result` with a `Repository` or an error.
|
||||
class public func atURL(URL: NSURL) -> Result<Repository, NSError> {
|
||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
||||
let result = git_repository_open(pointer, URL.fileSystemRepresentation)
|
||||
var pointer: COpaquePointer = nil
|
||||
let result = git_repository_open(&pointer, URL.fileSystemRepresentation)
|
||||
|
||||
if result != GIT_OK.value {
|
||||
pointer.dealloc(1)
|
||||
return failure(libGit2Error(result, libGit2PointOfFailure: "git_repository_open"))
|
||||
}
|
||||
|
||||
let repository = Repository(pointer.memory)
|
||||
pointer.dealloc(1)
|
||||
let repository = Repository(pointer)
|
||||
return success(repository)
|
||||
}
|
||||
|
||||
@ -83,19 +81,17 @@ final public class Repository {
|
||||
/// Returns the result of calling `transform` or an error if the object
|
||||
/// cannot be loaded.
|
||||
func withLibgit2Object<T>(oid: OID, type: git_otype, transform: COpaquePointer -> Result<T, NSError>) -> Result<T, NSError> {
|
||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
||||
var pointer: COpaquePointer = nil
|
||||
let repository = self.pointer
|
||||
var oid = oid.oid
|
||||
let result = git_object_lookup(pointer, repository, &oid, type)
|
||||
let result = git_object_lookup(&pointer, repository, &oid, type)
|
||||
|
||||
if result != GIT_OK.value {
|
||||
pointer.dealloc(1)
|
||||
return failure(libGit2Error(result, libGit2PointOfFailure: "git_object_lookup"))
|
||||
}
|
||||
|
||||
let value = transform(pointer.memory)
|
||||
git_object_free(pointer.memory)
|
||||
pointer.dealloc(1)
|
||||
let value = transform(pointer)
|
||||
git_object_free(pointer)
|
||||
return value
|
||||
}
|
||||
|
||||
@ -230,18 +226,16 @@ final public class Repository {
|
||||
///
|
||||
/// Returns the remote if it exists, or an error.
|
||||
public func remoteWithName(name: String) -> Result<Remote, NSError> {
|
||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
||||
var pointer: COpaquePointer = nil
|
||||
let repository = self.pointer
|
||||
let result = git_remote_lookup(pointer, repository, name)
|
||||
let result = git_remote_lookup(&pointer, repository, name)
|
||||
|
||||
if result != GIT_OK.value {
|
||||
pointer.dealloc(1)
|
||||
return failure(libGit2Error(result, libGit2PointOfFailure: "git_remote_lookup"))
|
||||
}
|
||||
|
||||
let value = Remote(pointer.memory)
|
||||
git_remote_free(pointer.memory)
|
||||
pointer.dealloc(1)
|
||||
let value = Remote(pointer)
|
||||
git_remote_free(pointer)
|
||||
return success(value)
|
||||
}
|
||||
|
||||
@ -282,19 +276,16 @@ final public class Repository {
|
||||
/// reference is a tag, a `TagReference` will be returned. Otherwise, a
|
||||
/// `Reference` will be returned.
|
||||
public func referenceWithName(name: String) -> Result<ReferenceType, NSError> {
|
||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
||||
var pointer: COpaquePointer = nil
|
||||
let repository = self.pointer
|
||||
let result = git_reference_lookup(pointer, repository, name)
|
||||
let result = git_reference_lookup(&pointer, repository, name)
|
||||
|
||||
if result != GIT_OK.value {
|
||||
pointer.dealloc(1)
|
||||
return failure(libGit2Error(result, libGit2PointOfFailure: "git_reference_lookup"))
|
||||
}
|
||||
|
||||
let value = referenceWithLibGit2Reference(pointer.memory)
|
||||
|
||||
git_reference_free(pointer.memory)
|
||||
pointer.dealloc(1)
|
||||
let value = referenceWithLibGit2Reference(pointer)
|
||||
git_reference_free(pointer)
|
||||
return success(value)
|
||||
}
|
||||
|
||||
|
||||
@ -15,11 +15,10 @@ func from_git_object<T>(repository: Repository, oid: OID, f: COpaquePointer -> T
|
||||
let repository = repository.pointer
|
||||
var oid = oid.oid
|
||||
|
||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
||||
git_object_lookup(pointer, repository, &oid, GIT_OBJ_ANY)
|
||||
let result = f(pointer.memory)
|
||||
git_object_free(pointer.memory)
|
||||
pointer.dealloc(1)
|
||||
var pointer: COpaquePointer = nil
|
||||
git_object_lookup(&pointer, repository, &oid, GIT_OBJ_ANY)
|
||||
let result = f(pointer)
|
||||
git_object_free(pointer)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
@ -14,11 +14,10 @@ import Quick
|
||||
func from_git_reference<T>(repository: Repository, name: String, f: COpaquePointer -> T) -> T {
|
||||
let repository = repository.pointer
|
||||
|
||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
||||
git_reference_lookup(pointer, repository, name)
|
||||
let result = f(pointer.memory)
|
||||
git_object_free(pointer.memory)
|
||||
pointer.dealloc(1)
|
||||
var pointer: COpaquePointer = nil
|
||||
git_reference_lookup(&pointer, repository, name)
|
||||
let result = f(pointer)
|
||||
git_object_free(pointer)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
@ -14,11 +14,10 @@ import Quick
|
||||
func with_git_remote<T>(repository: Repository, name: String, f: COpaquePointer -> T) -> T {
|
||||
let repository = repository.pointer
|
||||
|
||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
||||
git_remote_lookup(pointer, repository, name)
|
||||
let result = f(pointer.memory)
|
||||
git_object_free(pointer.memory)
|
||||
pointer.dealloc(1)
|
||||
var pointer: COpaquePointer = nil
|
||||
git_remote_lookup(&pointer, repository, name)
|
||||
let result = f(pointer)
|
||||
git_object_free(pointer)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user