Skip to content

Commit da4fecb

Browse files
committed
Revert libgit2 v0.28 API changes
Revert "git_buf: dispose instead of free" This reverts commit 2d6d3e6. Revert "git_error: instead of giterr" This reverts commit ba308b8.
1 parent 79512f1 commit da4fecb

File tree

11 files changed

+118
-118
lines changed

11 files changed

+118
-118
lines changed

LibGit2Sharp/Core/Ensure.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ private static unsafe void HandleError(int result)
135135
{
136136
string errorMessage;
137137
GitErrorCategory errorCategory = GitErrorCategory.Unknown;
138-
GitError* error = NativeMethods.git_error_last();
138+
GitError* error = NativeMethods.giterr_last();
139139

140140
if (error == null)
141141
{

LibGit2Sharp/Core/GitBuf.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ internal class GitBuf : IDisposable
1212

1313
public void Dispose()
1414
{
15-
Proxy.git_buf_dispose(this);
15+
Proxy.git_buf_free(this);
1616
}
1717
}
1818
}

LibGit2Sharp/Core/NativeMethods.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,15 +96,15 @@ private sealed class NativeShutdownObject : CriticalFinalizerObject
9696
}
9797

9898
[DllImport(libgit2, CallingConvention = CallingConvention.Cdecl)]
99-
internal static extern unsafe GitError* git_error_last();
99+
internal static extern unsafe GitError* giterr_last();
100100

101101
[DllImport(libgit2, CallingConvention = CallingConvention.Cdecl)]
102-
internal static extern void git_error_set_str(
102+
internal static extern void giterr_set_str(
103103
GitErrorCategory error_class,
104104
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalCookie = UniqueId.UniqueIdentifier, MarshalTypeRef = typeof(StrictUtf8Marshaler))] string errorString);
105105

106106
[DllImport(libgit2, CallingConvention = CallingConvention.Cdecl)]
107-
internal static extern void git_error_set_oom();
107+
internal static extern void giterr_set_oom();
108108

109109
[DllImport(libgit2, CallingConvention = CallingConvention.Cdecl)]
110110
internal static extern unsafe UInt32 git_blame_get_hunk_count(git_blame* blame);
@@ -279,7 +279,7 @@ internal static extern unsafe int git_branch_upstream_name(
279279
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalCookie = UniqueId.UniqueIdentifier, MarshalTypeRef = typeof(StrictUtf8Marshaler))] string referenceName);
280280

281281
[DllImport(libgit2, CallingConvention = CallingConvention.Cdecl)]
282-
internal static extern void git_buf_dispose(GitBuf buf);
282+
internal static extern void git_buf_free(GitBuf buf);
283283

284284
[DllImport(libgit2, CallingConvention = CallingConvention.Cdecl)]
285285
internal static extern unsafe int git_checkout_tree(

LibGit2Sharp/Core/Proxy.cs

Lines changed: 81 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,85 @@ namespace LibGit2Sharp.Core
1414
{
1515
internal class Proxy
1616
{
17+
#region giterr_
18+
19+
public static void giterr_set_str(GitErrorCategory error_class, Exception exception)
20+
{
21+
if (exception is OutOfMemoryException)
22+
{
23+
NativeMethods.giterr_set_oom();
24+
}
25+
else
26+
{
27+
NativeMethods.giterr_set_str(error_class, ErrorMessageFromException(exception));
28+
}
29+
}
30+
31+
public static void giterr_set_str(GitErrorCategory error_class, String errorString)
32+
{
33+
NativeMethods.giterr_set_str(error_class, errorString);
34+
}
35+
36+
/// <summary>
37+
/// This method will take an exception and try to generate an error message
38+
/// that captures the important messages of the error.
39+
/// The formatting is a bit subjective.
40+
/// </summary>
41+
/// <param name="ex"></param>
42+
/// <returns></returns>
43+
public static string ErrorMessageFromException(Exception ex)
44+
{
45+
StringBuilder sb = new StringBuilder();
46+
BuildErrorMessageFromException(sb, 0, ex);
47+
return sb.ToString();
48+
}
49+
50+
private static void BuildErrorMessageFromException(StringBuilder sb, int level, Exception ex)
51+
{
52+
string indent = new string(' ', level * 4);
53+
sb.AppendFormat("{0}{1}", indent, ex.Message);
54+
55+
if (ex is AggregateException)
56+
{
57+
AggregateException aggregateException = ((AggregateException)ex).Flatten();
58+
59+
if (aggregateException.InnerExceptions.Count == 1)
60+
{
61+
sb.AppendLine();
62+
sb.AppendLine();
63+
64+
sb.AppendFormat("{0}Contained Exception:{1}", indent, Environment.NewLine);
65+
BuildErrorMessageFromException(sb, level + 1, aggregateException.InnerException);
66+
}
67+
else
68+
{
69+
sb.AppendLine();
70+
sb.AppendLine();
71+
72+
sb.AppendFormat("{0}Contained Exceptions:{1}", indent, Environment.NewLine);
73+
for (int i = 0; i < aggregateException.InnerExceptions.Count; i++)
74+
{
75+
if (i != 0)
76+
{
77+
sb.AppendLine();
78+
sb.AppendLine();
79+
}
80+
81+
BuildErrorMessageFromException(sb, level + 1, aggregateException.InnerExceptions[i]);
82+
}
83+
}
84+
}
85+
else if (ex.InnerException != null)
86+
{
87+
sb.AppendLine();
88+
sb.AppendLine();
89+
sb.AppendFormat("{0}Inner Exception:{1}", indent, Environment.NewLine);
90+
BuildErrorMessageFromException(sb, level + 1, ex.InnerException);
91+
}
92+
}
93+
94+
#endregion
95+
1796
#region git_blame_
1897

1998
public static unsafe BlameHandle git_blame_file(
@@ -207,9 +286,9 @@ public static unsafe string git_branch_upstream_name(RepositoryHandle handle, st
207286

208287
#region git_buf_
209288

210-
public static void git_buf_dispose(GitBuf buf)
289+
public static void git_buf_free(GitBuf buf)
211290
{
212-
NativeMethods.git_buf_dispose(buf);
291+
NativeMethods.git_buf_free(buf);
213292
}
214293

215294
#endregion
@@ -851,85 +930,6 @@ public static unsafe int git_diff_num_deltas(DiffHandle diff)
851930

852931
#endregion
853932

854-
#region git_error_
855-
856-
public static void git_error_set_str(GitErrorCategory error_class, Exception exception)
857-
{
858-
if (exception is OutOfMemoryException)
859-
{
860-
NativeMethods.git_error_set_oom();
861-
}
862-
else
863-
{
864-
NativeMethods.git_error_set_str(error_class, ErrorMessageFromException(exception));
865-
}
866-
}
867-
868-
public static void git_error_set_str(GitErrorCategory error_class, String errorString)
869-
{
870-
NativeMethods.git_error_set_str(error_class, errorString);
871-
}
872-
873-
/// <summary>
874-
/// This method will take an exception and try to generate an error message
875-
/// that captures the important messages of the error.
876-
/// The formatting is a bit subjective.
877-
/// </summary>
878-
/// <param name="ex"></param>
879-
/// <returns></returns>
880-
public static string ErrorMessageFromException(Exception ex)
881-
{
882-
StringBuilder sb = new StringBuilder();
883-
BuildErrorMessageFromException(sb, 0, ex);
884-
return sb.ToString();
885-
}
886-
887-
private static void BuildErrorMessageFromException(StringBuilder sb, int level, Exception ex)
888-
{
889-
string indent = new string(' ', level * 4);
890-
sb.AppendFormat("{0}{1}", indent, ex.Message);
891-
892-
if (ex is AggregateException)
893-
{
894-
AggregateException aggregateException = ((AggregateException)ex).Flatten();
895-
896-
if (aggregateException.InnerExceptions.Count == 1)
897-
{
898-
sb.AppendLine();
899-
sb.AppendLine();
900-
901-
sb.AppendFormat("{0}Contained Exception:{1}", indent, Environment.NewLine);
902-
BuildErrorMessageFromException(sb, level + 1, aggregateException.InnerException);
903-
}
904-
else
905-
{
906-
sb.AppendLine();
907-
sb.AppendLine();
908-
909-
sb.AppendFormat("{0}Contained Exceptions:{1}", indent, Environment.NewLine);
910-
for (int i = 0; i < aggregateException.InnerExceptions.Count; i++)
911-
{
912-
if (i != 0)
913-
{
914-
sb.AppendLine();
915-
sb.AppendLine();
916-
}
917-
918-
BuildErrorMessageFromException(sb, level + 1, aggregateException.InnerExceptions[i]);
919-
}
920-
}
921-
}
922-
else if (ex.InnerException != null)
923-
{
924-
sb.AppendLine();
925-
sb.AppendLine();
926-
sb.AppendFormat("{0}Inner Exception:{1}", indent, Environment.NewLine);
927-
BuildErrorMessageFromException(sb, level + 1, ex.InnerException);
928-
}
929-
}
930-
931-
#endregion
932-
933933
#region git_filter_
934934

935935
public static void git_filter_register(string name, IntPtr filterPtr, int priority)

LibGit2Sharp/Filter.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ int InitializeCallback(IntPtr filterPointer)
236236
{
237237
Log.Write(LogLevel.Error, "Filter.InitializeCallback exception");
238238
Log.Write(LogLevel.Error, exception.ToString());
239-
Proxy.git_error_set_str(GitErrorCategory.Filter, exception);
239+
Proxy.giterr_set_str(GitErrorCategory.Filter, exception);
240240
result = (int)GitErrorCode.Error;
241241
}
242242
return result;
@@ -286,7 +286,7 @@ int StreamCreateCallback(out IntPtr git_writestream_out, GitFilter self, IntPtr
286286

287287
Log.Write(LogLevel.Error, "Filter.StreamCreateCallback exception");
288288
Log.Write(LogLevel.Error, exception.ToString());
289-
Proxy.git_error_set_str(GitErrorCategory.Filter, exception);
289+
Proxy.giterr_set_str(GitErrorCategory.Filter, exception);
290290
result = (int)GitErrorCode.Error;
291291
}
292292

@@ -322,7 +322,7 @@ int StreamCloseCallback(IntPtr stream)
322322
{
323323
Log.Write(LogLevel.Error, "Filter.StreamCloseCallback exception");
324324
Log.Write(LogLevel.Error, exception.ToString());
325-
Proxy.git_error_set_str(GitErrorCategory.Filter, exception);
325+
Proxy.giterr_set_str(GitErrorCategory.Filter, exception);
326326
result = (int)GitErrorCode.Error;
327327
}
328328

@@ -384,7 +384,7 @@ unsafe int StreamWriteCallback(IntPtr stream, IntPtr buffer, UIntPtr len)
384384
break;
385385

386386
default:
387-
Proxy.git_error_set_str(GitErrorCategory.Filter, "Unexpected filter mode.");
387+
Proxy.giterr_set_str(GitErrorCategory.Filter, "Unexpected filter mode.");
388388
return (int)GitErrorCode.Ambiguous;
389389
}
390390
}
@@ -393,7 +393,7 @@ unsafe int StreamWriteCallback(IntPtr stream, IntPtr buffer, UIntPtr len)
393393
{
394394
Log.Write(LogLevel.Error, "Filter.StreamWriteCallback exception");
395395
Log.Write(LogLevel.Error, exception.ToString());
396-
Proxy.git_error_set_str(GitErrorCategory.Filter, exception);
396+
Proxy.giterr_set_str(GitErrorCategory.Filter, exception);
397397
result = (int)GitErrorCode.Error;
398398
}
399399

LibGit2Sharp/OdbBackend.cs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ private static OdbBackend MarshalOdbBackend(IntPtr backendPtr)
238238

239239
if (odbBackend == null)
240240
{
241-
Proxy.git_error_set_str(GitErrorCategory.Reference, "Cannot retrieve the managed OdbBackend.");
241+
Proxy.giterr_set_str(GitErrorCategory.Reference, "Cannot retrieve the managed OdbBackend.");
242242
return null;
243243
}
244244

@@ -288,7 +288,7 @@ private unsafe static int Read(
288288
}
289289
catch (Exception ex)
290290
{
291-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
291+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
292292
return (int)GitErrorCode.Error;
293293
}
294294
finally
@@ -352,7 +352,7 @@ private unsafe static int ReadPrefix(
352352
}
353353
catch (Exception ex)
354354
{
355-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
355+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
356356
return (int)GitErrorCode.Error;
357357
}
358358
finally
@@ -397,7 +397,7 @@ private static int ReadHeader(
397397
}
398398
catch (Exception ex)
399399
{
400-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
400+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
401401
return (int)GitErrorCode.Error;
402402
}
403403

@@ -428,7 +428,7 @@ private static unsafe int Write(
428428
}
429429
catch (Exception ex)
430430
{
431-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
431+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
432432
return (int)GitErrorCode.Error;
433433
}
434434
}
@@ -463,7 +463,7 @@ private static int WriteStream(
463463
}
464464
catch (Exception ex)
465465
{
466-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
466+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
467467
return (int)GitErrorCode.Error;
468468
}
469469
}
@@ -495,7 +495,7 @@ private static int ReadStream(
495495
}
496496
catch (Exception ex)
497497
{
498-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
498+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
499499
return (int)GitErrorCode.Error;
500500
}
501501
}
@@ -516,7 +516,7 @@ private static bool Exists(
516516
}
517517
catch (Exception ex)
518518
{
519-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
519+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
520520
return false;
521521
}
522522
}
@@ -550,7 +550,7 @@ private static int ExistsPrefix(
550550
}
551551
catch (Exception ex)
552552
{
553-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
553+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
554554
return (int)GitErrorCode.Error;
555555
}
556556
}
@@ -572,7 +572,7 @@ private static int Foreach(
572572
}
573573
catch (Exception ex)
574574
{
575-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
575+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
576576
return (int)GitErrorCode.Error;
577577
}
578578
}
@@ -601,7 +601,7 @@ private static void Free(
601601
}
602602
catch (Exception ex)
603603
{
604-
Proxy.git_error_set_str(GitErrorCategory.Odb, ex);
604+
Proxy.giterr_set_str(GitErrorCategory.Odb, ex);
605605
}
606606
}
607607

0 commit comments

Comments
 (0)