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-03-28 16:40:57 +0400
committernulltoken <emeric.fermas@gmail.com>2012-03-28 18:48:08 +0400
commitc86825cc038a55d620b2fb0b11e4c734688810af (patch)
treecd01eec69bd39b386aab6225f2318079b449fde8 /LibGit2Sharp
parentc1a5d24bc9f0a2506ec249e2decf7331ca65ce7f (diff)
Replace usage of IntPtr holding references to tree entries with TreeEntrySafeHandle
Diffstat (limited to 'LibGit2Sharp')
-rw-r--r--LibGit2Sharp/Core/NativeMethods.cs14
-rw-r--r--LibGit2Sharp/Tree.cs10
-rwxr-xr-xLibGit2Sharp/TreeEntry.cs3
3 files changed, 14 insertions, 13 deletions
diff --git a/LibGit2Sharp/Core/NativeMethods.cs b/LibGit2Sharp/Core/NativeMethods.cs
index 430ab4a6..3344a3b3 100644
--- a/LibGit2Sharp/Core/NativeMethods.cs
+++ b/LibGit2Sharp/Core/NativeMethods.cs
@@ -450,28 +450,28 @@ namespace LibGit2Sharp.Core
public static extern int git_tree_create_fromindex(out GitOid treeOid, IndexSafeHandle index);
[DllImport(libgit2)]
- public static extern int git_tree_entry_2object(out GitObjectSafeHandle obj, RepositorySafeHandle repo, IntPtr entry);
+ public static extern int git_tree_entry_2object(out GitObjectSafeHandle obj, RepositorySafeHandle repo, TreeEntrySafeHandle entry);
[DllImport(libgit2)]
- public static extern uint git_tree_entry_attributes(IntPtr entry);
+ public static extern uint git_tree_entry_attributes(TreeEntrySafeHandle entry);
[DllImport(libgit2)]
- public static extern IntPtr git_tree_entry_byindex(GitObjectSafeHandle tree, uint idx);
+ public static extern TreeEntrySafeHandle git_tree_entry_byindex(GitObjectSafeHandle tree, uint idx);
[DllImport(libgit2)]
- public static extern IntPtr git_tree_entry_byname(
+ public static extern TreeEntrySafeHandle git_tree_entry_byname(
GitObjectSafeHandle tree,
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(FilePathMarshaler))] FilePath filename);
[DllImport(libgit2)]
- public static extern IntPtr git_tree_entry_id(IntPtr entry);
+ public static extern IntPtr git_tree_entry_id(TreeEntrySafeHandle entry);
[DllImport(libgit2)]
[return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8Marshaler))]
- public static extern string git_tree_entry_name(IntPtr entry);
+ public static extern string git_tree_entry_name(TreeEntrySafeHandle entry);
[DllImport(libgit2)]
- public static extern GitObjectType git_tree_entry_type(IntPtr entry);
+ public static extern GitObjectType git_tree_entry_type(TreeEntrySafeHandle entry);
[DllImport(libgit2)]
public static extern uint git_tree_entrycount(GitObjectSafeHandle tree);
diff --git a/LibGit2Sharp/Tree.cs b/LibGit2Sharp/Tree.cs
index 0fd4050c..f9f883f6 100644
--- a/LibGit2Sharp/Tree.cs
+++ b/LibGit2Sharp/Tree.cs
@@ -61,15 +61,15 @@ namespace LibGit2Sharp
string posixPath = relativePath.Posix;
string filename = posixPath.Split('/').Last();
- IntPtr e = NativeMethods.git_tree_entry_byname(objectPtr, filename);
+ TreeEntrySafeHandle handle = NativeMethods.git_tree_entry_byname(objectPtr, filename);
- if (e == IntPtr.Zero)
+ if (handle.IsInvalid)
{
return null;
}
string parentPath = posixPath.Substring(0, posixPath.Length - filename.Length);
- return new TreeEntry(e, Id, repo, path.Combine(parentPath));
+ return new TreeEntry(handle, Id, repo, path.Combine(parentPath));
}
}
@@ -118,8 +118,8 @@ namespace LibGit2Sharp
{
for (uint i = 0; i < Count; i++)
{
- IntPtr e = NativeMethods.git_tree_entry_byindex(obj.ObjectPtr, i);
- yield return new TreeEntry(e, Id, repo, path);
+ TreeEntrySafeHandle handle = NativeMethods.git_tree_entry_byindex(obj.ObjectPtr, i);
+ yield return new TreeEntry(handle, Id, repo, path);
}
}
}
diff --git a/LibGit2Sharp/TreeEntry.cs b/LibGit2Sharp/TreeEntry.cs
index b768c342..30a7c97b 100755
--- a/LibGit2Sharp/TreeEntry.cs
+++ b/LibGit2Sharp/TreeEntry.cs
@@ -2,6 +2,7 @@ using System;
using System.Runtime.InteropServices;
using LibGit2Sharp.Core;
using LibGit2Sharp.Core.Compat;
+using LibGit2Sharp.Core.Handles;
namespace LibGit2Sharp
{
@@ -19,7 +20,7 @@ namespace LibGit2Sharp
private static readonly LambdaEqualityHelper<TreeEntry> equalityHelper =
new LambdaEqualityHelper<TreeEntry>(new Func<TreeEntry, object>[] { x => x.Name, x => x.parentTreeId });
- internal TreeEntry(IntPtr obj, ObjectId parentTreeId, Repository repo, FilePath parentPath)
+ internal TreeEntry(TreeEntrySafeHandle obj, ObjectId parentTreeId, Repository repo, FilePath parentPath)
{
this.parentTreeId = parentTreeId;
this.repo = repo;