diff options
author | nulltoken <emeric.fermas@gmail.com> | 2012-02-27 19:07:08 +0400 |
---|---|---|
committer | nulltoken <emeric.fermas@gmail.com> | 2012-02-27 23:08:35 +0400 |
commit | e27e18a83a8c422e5fa80fe679aa77948c1f5f63 (patch) | |
tree | 357d03f6e7e6e52f5e8949a1b960f86c023f82d3 /LibGit2Sharp | |
parent | b690f448c5b640bdbfb8e661231512c0cf3c3563 (diff) |
Refactor conversion of a native pointer into a GitOid
Diffstat (limited to 'LibGit2Sharp')
-rw-r--r-- | LibGit2Sharp/Commit.cs | 3 | ||||
-rw-r--r-- | LibGit2Sharp/Core/IntPtrExtensions.cs | 5 | ||||
-rw-r--r-- | LibGit2Sharp/GitObject.cs | 2 | ||||
-rw-r--r-- | LibGit2Sharp/Reference.cs | 3 | ||||
-rw-r--r-- | LibGit2Sharp/TagAnnotation.cs | 4 |
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)) }; } } |