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
|
var oid: OID
|
||||||
if git_reference_type(pointer).value == GIT_REF_SYMBOLIC.value {
|
if git_reference_type(pointer).value == GIT_REF_SYMBOLIC.value {
|
||||||
let resolved = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
var resolved: COpaquePointer = nil
|
||||||
let success = git_reference_resolve(resolved, pointer)
|
let success = git_reference_resolve(&resolved, pointer)
|
||||||
if success != GIT_OK.value {
|
if success != GIT_OK.value {
|
||||||
resolved.dealloc(1)
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
oid = OID(git_reference_target(resolved.memory).memory)
|
oid = OID(git_reference_target(resolved).memory)
|
||||||
git_reference_free(resolved.memory)
|
git_reference_free(resolved)
|
||||||
resolved.dealloc(1)
|
|
||||||
} else {
|
} else {
|
||||||
oid = OID(git_reference_target(pointer).memory)
|
oid = OID(git_reference_target(pointer).memory)
|
||||||
}
|
}
|
||||||
@ -184,15 +182,14 @@ public enum TagReference: ReferenceType {
|
|||||||
let repo = git_reference_owner(pointer)
|
let repo = git_reference_owner(pointer)
|
||||||
var oid = git_reference_target(pointer).memory
|
var oid = git_reference_target(pointer).memory
|
||||||
|
|
||||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
var pointer: COpaquePointer = 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.value {
|
if result == GIT_OK.value {
|
||||||
self = .Annotated(name, Tag(pointer.memory))
|
self = .Annotated(name, Tag(pointer))
|
||||||
} else {
|
} else {
|
||||||
self = .Lightweight(name, OID(oid))
|
self = .Lightweight(name, OID(oid))
|
||||||
}
|
}
|
||||||
git_object_free(pointer.memory)
|
git_object_free(pointer)
|
||||||
pointer.dealloc(1)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -33,16 +33,14 @@ final public class Repository {
|
|||||||
///
|
///
|
||||||
/// Returns a `Result` with a `Repository` or an error.
|
/// Returns a `Result` with a `Repository` or an error.
|
||||||
class public func atURL(URL: NSURL) -> Result<Repository, NSError> {
|
class public func atURL(URL: NSURL) -> Result<Repository, NSError> {
|
||||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
var pointer: COpaquePointer = nil
|
||||||
let result = git_repository_open(pointer, URL.fileSystemRepresentation)
|
let result = git_repository_open(&pointer, URL.fileSystemRepresentation)
|
||||||
|
|
||||||
if result != GIT_OK.value {
|
if result != GIT_OK.value {
|
||||||
pointer.dealloc(1)
|
|
||||||
return failure(libGit2Error(result, libGit2PointOfFailure: "git_repository_open"))
|
return failure(libGit2Error(result, libGit2PointOfFailure: "git_repository_open"))
|
||||||
}
|
}
|
||||||
|
|
||||||
let repository = Repository(pointer.memory)
|
let repository = Repository(pointer)
|
||||||
pointer.dealloc(1)
|
|
||||||
return success(repository)
|
return success(repository)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,19 +81,17 @@ 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: COpaquePointer -> Result<T, NSError>) -> Result<T, NSError> {
|
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
|
let repository = self.pointer
|
||||||
var oid = oid.oid
|
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 {
|
if result != GIT_OK.value {
|
||||||
pointer.dealloc(1)
|
|
||||||
return failure(libGit2Error(result, libGit2PointOfFailure: "git_object_lookup"))
|
return failure(libGit2Error(result, libGit2PointOfFailure: "git_object_lookup"))
|
||||||
}
|
}
|
||||||
|
|
||||||
let value = transform(pointer.memory)
|
let value = transform(pointer)
|
||||||
git_object_free(pointer.memory)
|
git_object_free(pointer)
|
||||||
pointer.dealloc(1)
|
|
||||||
return value
|
return value
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,18 +226,16 @@ final public class Repository {
|
|||||||
///
|
///
|
||||||
/// Returns the remote if it exists, or an error.
|
/// Returns the remote if it exists, or an error.
|
||||||
public func remoteWithName(name: String) -> Result<Remote, NSError> {
|
public func remoteWithName(name: String) -> Result<Remote, NSError> {
|
||||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
var pointer: COpaquePointer = nil
|
||||||
let repository = self.pointer
|
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 {
|
if result != GIT_OK.value {
|
||||||
pointer.dealloc(1)
|
|
||||||
return failure(libGit2Error(result, libGit2PointOfFailure: "git_remote_lookup"))
|
return failure(libGit2Error(result, libGit2PointOfFailure: "git_remote_lookup"))
|
||||||
}
|
}
|
||||||
|
|
||||||
let value = Remote(pointer.memory)
|
let value = Remote(pointer)
|
||||||
git_remote_free(pointer.memory)
|
git_remote_free(pointer)
|
||||||
pointer.dealloc(1)
|
|
||||||
return success(value)
|
return success(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,19 +276,16 @@ final public class Repository {
|
|||||||
/// reference is a tag, a `TagReference` will be returned. Otherwise, a
|
/// reference is a tag, a `TagReference` will be returned. Otherwise, a
|
||||||
/// `Reference` will be returned.
|
/// `Reference` will be returned.
|
||||||
public func referenceWithName(name: String) -> Result<ReferenceType, NSError> {
|
public func referenceWithName(name: String) -> Result<ReferenceType, NSError> {
|
||||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
var pointer: COpaquePointer = nil
|
||||||
let repository = self.pointer
|
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 {
|
if result != GIT_OK.value {
|
||||||
pointer.dealloc(1)
|
|
||||||
return failure(libGit2Error(result, libGit2PointOfFailure: "git_reference_lookup"))
|
return failure(libGit2Error(result, libGit2PointOfFailure: "git_reference_lookup"))
|
||||||
}
|
}
|
||||||
|
|
||||||
let value = referenceWithLibGit2Reference(pointer.memory)
|
let value = referenceWithLibGit2Reference(pointer)
|
||||||
|
git_reference_free(pointer)
|
||||||
git_reference_free(pointer.memory)
|
|
||||||
pointer.dealloc(1)
|
|
||||||
return success(value)
|
return success(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -15,11 +15,10 @@ func from_git_object<T>(repository: Repository, oid: OID, f: COpaquePointer -> T
|
|||||||
let repository = repository.pointer
|
let repository = repository.pointer
|
||||||
var oid = oid.oid
|
var oid = oid.oid
|
||||||
|
|
||||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
var pointer: COpaquePointer = nil
|
||||||
git_object_lookup(pointer, repository, &oid, GIT_OBJ_ANY)
|
git_object_lookup(&pointer, repository, &oid, GIT_OBJ_ANY)
|
||||||
let result = f(pointer.memory)
|
let result = f(pointer)
|
||||||
git_object_free(pointer.memory)
|
git_object_free(pointer)
|
||||||
pointer.dealloc(1)
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,11 +14,10 @@ import Quick
|
|||||||
func from_git_reference<T>(repository: Repository, name: String, f: COpaquePointer -> T) -> T {
|
func from_git_reference<T>(repository: Repository, name: String, f: COpaquePointer -> T) -> T {
|
||||||
let repository = repository.pointer
|
let repository = repository.pointer
|
||||||
|
|
||||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
var pointer: COpaquePointer = nil
|
||||||
git_reference_lookup(pointer, repository, name)
|
git_reference_lookup(&pointer, repository, name)
|
||||||
let result = f(pointer.memory)
|
let result = f(pointer)
|
||||||
git_object_free(pointer.memory)
|
git_object_free(pointer)
|
||||||
pointer.dealloc(1)
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,11 +14,10 @@ import Quick
|
|||||||
func with_git_remote<T>(repository: Repository, name: String, f: COpaquePointer -> T) -> T {
|
func with_git_remote<T>(repository: Repository, name: String, f: COpaquePointer -> T) -> T {
|
||||||
let repository = repository.pointer
|
let repository = repository.pointer
|
||||||
|
|
||||||
let pointer = UnsafeMutablePointer<COpaquePointer>.alloc(1)
|
var pointer: COpaquePointer = nil
|
||||||
git_remote_lookup(pointer, repository, name)
|
git_remote_lookup(&pointer, repository, name)
|
||||||
let result = f(pointer.memory)
|
let result = f(pointer)
|
||||||
git_object_free(pointer.memory)
|
git_object_free(pointer)
|
||||||
pointer.dealloc(1)
|
|
||||||
|
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user