Skip to content

Commit 0690be7

Browse files
committed
Fix wrongly declared interop signature
1 parent f28c269 commit 0690be7

10 files changed

+29
-32
lines changed

LibGit2Sharp/Configuration.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ public bool HasSystemConfig
6262
get { return systemConfigPath != null; }
6363
}
6464

65-
private static string ConvertPath(Func<byte[], IntPtr, int> pathRetriever)
65+
private static string ConvertPath(Func<byte[], uint, int> pathRetriever)
6666
{
6767
var buffer = new byte[NativeMethods.GIT_PATH_MAX];
6868

69-
int result = pathRetriever(buffer, new IntPtr(NativeMethods.GIT_PATH_MAX));
69+
int result = pathRetriever(buffer, NativeMethods.GIT_PATH_MAX);
7070

7171
if (result == (int)GitErrorCode.GIT_ENOTFOUND)
7272
{

LibGit2Sharp/ContentChanges.cs

+5-9
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ namespace LibGit2Sharp
1010
public class ContentChanges
1111
{
1212
private readonly StringBuilder patchBuilder = new StringBuilder();
13+
private static readonly Utf8Marshaler marshaler = (Utf8Marshaler)Utf8Marshaler.GetInstance(string.Empty);
1314

1415
protected ContentChanges()
1516
{
@@ -44,22 +45,17 @@ internal static bool IsBinaryDelta(GitDiffDelta delta)
4445
return delta.OldFile.Flags.Has(GitDiffFileFlags.GIT_DIFF_FILE_BINARY) || delta.NewFile.Flags.Has(GitDiffFileFlags.GIT_DIFF_FILE_BINARY);
4546
}
4647

47-
private static string NativeToString(IntPtr content, IntPtr contentlen)
48+
private int HunkCallback(IntPtr data, GitDiffDelta delta, GitDiffRange range, IntPtr header, uint headerlen)
4849
{
49-
return ((Utf8Marshaler)(Utf8Marshaler.GetInstance(string.Empty))).NativeToString(content, contentlen.ToInt32());
50-
}
51-
52-
private int HunkCallback(IntPtr data, GitDiffDelta delta, GitDiffRange range, IntPtr header, IntPtr headerlen)
53-
{
54-
string decodedContent = NativeToString(header, headerlen);
50+
string decodedContent = marshaler.NativeToString(header, headerlen);
5551

5652
PatchBuilder.AppendFormat("{0}", decodedContent);
5753
return 0;
5854
}
5955

60-
private int LineCallback(IntPtr data, GitDiffDelta delta, GitDiffRange range, GitDiffLineOrigin lineorigin, IntPtr content, IntPtr contentlen)
56+
private int LineCallback(IntPtr data, GitDiffDelta delta, GitDiffRange range, GitDiffLineOrigin lineorigin, IntPtr content, uint contentlen)
6157
{
62-
string decodedContent = NativeToString(content, contentlen);
58+
string decodedContent = marshaler.NativeToString(content, contentlen);
6359

6460
string prefix;
6561

LibGit2Sharp/Core/Ensure.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ public static void Success(int result, bool allowPositiveResult = false)
7070

7171
throw new LibGit2Exception(
7272
String.Format(CultureInfo.InvariantCulture, "An error was raised by libgit2. Class = {0} ({1}).{2}{3}",
73-
Enum.GetName(typeof(GitErrorType), error.Klass.ToInt32()),
73+
Enum.GetName(typeof(GitErrorType), error.Klass),
7474
result,
7575
Environment.NewLine,
7676
errorMessage));

LibGit2Sharp/Core/GitDiff.cs

+7-7
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,17 @@ internal class GitDiffDelta
5959
public GitDiffFile OldFile;
6060
public GitDiffFile NewFile;
6161
public ChangeKind Status;
62-
public UIntPtr Similarity;
63-
public IntPtr Binary;
62+
public uint Similarity;
63+
public int Binary;
6464
}
6565

6666
[StructLayout(LayoutKind.Sequential)]
6767
internal class GitDiffRange
6868
{
69-
public IntPtr OldStart;
70-
public IntPtr OldLines;
71-
public IntPtr NewStart;
72-
public IntPtr NewLines;
69+
public int OldStart;
70+
public int OldLines;
71+
public int NewStart;
72+
public int NewLines;
7373
}
7474

7575
enum GitDiffLineOrigin : byte
@@ -85,4 +85,4 @@ enum GitDiffLineOrigin : byte
8585
GIT_DIFF_LINE_HUNK_HDR = 0x48, //'H',
8686
GIT_DIFF_LINE_BINARY = 0x42, //'B',
8787
}
88-
}
88+
}

LibGit2Sharp/Core/GitError.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ namespace LibGit2Sharp.Core
77
internal class GitError
88
{
99
public IntPtr Message;
10-
public IntPtr Klass;
10+
public int Klass;
1111
}
1212

1313
internal enum GitErrorType

LibGit2Sharp/Core/Libgit2UnsafeHelper.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ private static IList<string> BuildListOf(UnSafeNativeMethods.git_strarray strArr
5252
{
5353
UnSafeNativeMethods.git_strarray* gitStrArray = &strArray;
5454

55-
int numberOfEntries = gitStrArray->size.ToInt32();
55+
uint numberOfEntries = gitStrArray->size;
5656
for (uint i = 0; i < numberOfEntries; i++)
5757
{
5858
var name = (string)marshaler.MarshalNativeToManaged((IntPtr)gitStrArray->strings[i]);

LibGit2Sharp/Core/NativeMethods.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace LibGit2Sharp.Core
99
{
1010
internal static class NativeMethods
1111
{
12-
public const int GIT_PATH_MAX = 4096;
12+
public const uint GIT_PATH_MAX = 4096;
1313
private const string libgit2 = "git2";
1414

1515
static NativeMethods()
@@ -149,10 +149,10 @@ public static extern int git_commit_create(
149149
public static extern int git_config_delete(ConfigurationSafeHandle cfg, string name);
150150

151151
[DllImport(libgit2)]
152-
public static extern int git_config_find_global(byte[] global_config_path, IntPtr length);
152+
public static extern int git_config_find_global(byte[] global_config_path, uint length);
153153

154154
[DllImport(libgit2)]
155-
public static extern int git_config_find_system(byte[] system_config_path, IntPtr length);
155+
public static extern int git_config_find_system(byte[] system_config_path, uint length);
156156

157157
[DllImport(libgit2)]
158158
public static extern void git_config_free(IntPtr cfg);
@@ -259,7 +259,7 @@ internal delegate int git_diff_hunk_fn(
259259
GitDiffDelta delta,
260260
GitDiffRange range,
261261
IntPtr header,
262-
IntPtr headerLen);
262+
uint headerLen);
263263

264264
[DllImport(libgit2)]
265265
public static extern int git_diff_foreach(
@@ -275,7 +275,7 @@ internal delegate int git_diff_data_fn(
275275
GitDiffRange range,
276276
GitDiffLineOrigin lineOrigin,
277277
IntPtr content,
278-
IntPtr contentLen);
278+
uint contentLen);
279279

280280
[DllImport(libgit2)]
281281
public static extern int git_diff_print_patch(

LibGit2Sharp/Core/UnSafeNativeMethods.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ internal static unsafe class UnSafeNativeMethods
2828
internal struct git_strarray
2929
{
3030
public sbyte** strings;
31-
public IntPtr size;
31+
public uint size;
3232
}
3333

3434
#endregion

LibGit2Sharp/Core/Utf8Marshaler.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,19 @@ protected unsafe string NativeToString(IntPtr pNativeData)
5959
{
6060
walk++;
6161
}
62-
var length = (int)(walk - (byte*)pNativeData);
62+
63+
var length = (uint)(walk - (byte*)pNativeData);
6364

6465
return NativeToString(pNativeData, length);
6566
}
6667

67-
public string NativeToString(IntPtr pNativeData, int length)
68+
public string NativeToString(IntPtr pNativeData, uint length)
6869
{
6970
// should not be null terminated
7071
var strbuf = new byte[length];
7172

7273
// skip the trailing null
73-
Marshal.Copy(pNativeData, strbuf, 0, length);
74+
Marshal.Copy(pNativeData, strbuf, 0, (int)length);
7475
string data = Encoding.UTF8.GetString(strbuf);
7576
return data;
7677
}

LibGit2Sharp/TreeChanges.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ internal TreeChanges(DiffListSafeHandle diff)
4141
Ensure.Success(NativeMethods.git_diff_print_patch(diff, IntPtr.Zero, PrintCallBack));
4242
}
4343

44-
private int PrintCallBack(IntPtr data, GitDiffDelta delta, GitDiffRange range, GitDiffLineOrigin lineorigin, IntPtr content, IntPtr contentlen)
44+
private int PrintCallBack(IntPtr data, GitDiffDelta delta, GitDiffRange range, GitDiffLineOrigin lineorigin, IntPtr content, uint contentlen)
4545
{
46-
string formattedoutput = marshaler.NativeToString(content, contentlen.ToInt32());
46+
string formattedoutput = marshaler.NativeToString(content, contentlen);
4747
var currentFilePath = (string)marshaler.MarshalNativeToManaged(delta.NewFile.Path);
4848

4949
AddLineChange(currentFilePath, lineorigin);

0 commit comments

Comments
 (0)