Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2sharp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2012-02-27 19:07:08 +0400
committernulltoken <emeric.fermas@gmail.com>2012-02-27 23:08:35 +0400
commite27e18a83a8c422e5fa80fe679aa77948c1f5f63 (patch)
tree357d03f6e7e6e52f5e8949a1b960f86c023f82d3 /LibGit2Sharp
parentb690f448c5b640bdbfb8e661231512c0cf3c3563 (diff)
Refactor conversion of a native pointer into a GitOid
Diffstat (limited to 'LibGit2Sharp')
-rw-r--r--LibGit2Sharp/Commit.cs3
-rw-r--r--LibGit2Sharp/Core/IntPtrExtensions.cs5
-rw-r--r--LibGit2Sharp/GitObject.cs2
-rw-r--r--LibGit2Sharp/Reference.cs3
-rw-r--r--LibGit2Sharp/TagAnnotation.cs4
5 files changed, 10 insertions, 7 deletions
diff --git a/LibGit2Sharp/Commit.cs b/LibGit2Sharp/Commit.cs
index 7b7a8413..f67c63ec 100644
--- a/LibGit2Sharp/Commit.cs
+++ b/LibGit2Sharp/Commit.cs
@@ -120,8 +120,7 @@ namespace LibGit2Sharp
internal static Commit BuildFromPtr(IntPtr obj, ObjectId id, Repository repo)
{
- var treeId =
- new ObjectId((GitOid)Marshal.PtrToStructure(NativeMethods.git_commit_tree_oid(obj), typeof(GitOid)));
+ var treeId = new ObjectId(NativeMethods.git_commit_tree_oid(obj).MarshalAsOid());
return new Commit(id, treeId, repo)
{
diff --git a/LibGit2Sharp/Core/IntPtrExtensions.cs b/LibGit2Sharp/Core/IntPtrExtensions.cs
index d827511e..4e2d4f4d 100644
--- a/LibGit2Sharp/Core/IntPtrExtensions.cs
+++ b/LibGit2Sharp/Core/IntPtrExtensions.cs
@@ -9,5 +9,10 @@ namespace LibGit2Sharp.Core
{
return Marshal.PtrToStringAnsi(intPtr);
}
+
+ public static GitOid MarshalAsOid(this IntPtr intPtr)
+ {
+ return (GitOid)Marshal.PtrToStructure(intPtr, typeof(GitOid));
+ }
}
}
diff --git a/LibGit2Sharp/GitObject.cs b/LibGit2Sharp/GitObject.cs
index 5837c8a4..b6d4df21 100644
--- a/LibGit2Sharp/GitObject.cs
+++ b/LibGit2Sharp/GitObject.cs
@@ -73,7 +73,7 @@ namespace LibGit2Sharp
internal static ObjectId ObjectIdOf(IntPtr obj)
{
IntPtr ptr = NativeMethods.git_object_id(obj);
- return new ObjectId((GitOid)Marshal.PtrToStructure(ptr, typeof(GitOid)));
+ return new ObjectId(ptr.MarshalAsOid());
}
/// <summary>
diff --git a/LibGit2Sharp/Reference.cs b/LibGit2Sharp/Reference.cs
index eef973fd..a63ab700 100644
--- a/LibGit2Sharp/Reference.cs
+++ b/LibGit2Sharp/Reference.cs
@@ -59,8 +59,7 @@ namespace LibGit2Sharp
case GitReferenceType.Oid:
IntPtr oidPtr = NativeMethods.git_reference_oid(ptr);
- var oid = (GitOid)Marshal.PtrToStructure(oidPtr, typeof(GitOid));
- var targetOid = new ObjectId(oid);
+ var targetOid = new ObjectId(oidPtr.MarshalAsOid());
var targetBuilder = new Lazy<GitObject>(() => repo.Lookup(targetOid));
reference = new DirectReference(targetBuilder) { CanonicalName = name, TargetIdentifier = targetOid.Sha };
diff --git a/LibGit2Sharp/TagAnnotation.cs b/LibGit2Sharp/TagAnnotation.cs
index 0c519fb2..6636e54c 100644
--- a/LibGit2Sharp/TagAnnotation.cs
+++ b/LibGit2Sharp/TagAnnotation.cs
@@ -43,14 +43,14 @@ namespace LibGit2Sharp
internal static TagAnnotation BuildFromPtr(IntPtr obj, ObjectId id, Repository repo)
{
IntPtr oidPtr = NativeMethods.git_tag_target_oid(obj);
- var oid = (GitOid)Marshal.PtrToStructure(oidPtr, typeof(GitOid));
+ var targetOid = new ObjectId(oidPtr.MarshalAsOid());
return new TagAnnotation(id)
{
Message = NativeMethods.git_tag_message(obj).MarshallAsString(),
Name = NativeMethods.git_tag_name(obj).MarshallAsString(),
Tagger = new Signature(NativeMethods.git_tag_tagger(obj)),
- targetBuilder = new Lazy<GitObject>(() => repo.Lookup<GitObject>(new ObjectId(oid)))
+ targetBuilder = new Lazy<GitObject>(() => repo.Lookup<GitObject>(targetOid))
};
}
}