8000 Fix gc collected callbacks maybe? · kstrohminfor/libgit2sharp@a974f8c · GitHub
[go: up one dir, main page]

Skip to content

Commit a974f8c

Browse files
committed
Fix gc collected callbacks maybe?
1 parent d45a70a commit a974f8c

File tree

6 files changed

+406
-348
lines changed

6 files changed

+406
-348
lines changed

LibGit2Sharp.Tests/RefdbBackendFixture.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public void CanWriteToRefdbBackend()
1717
var backend = new MockRefdbBackend(repo);
1818
repo.Refs.SetBackend(backend);
1919
repo.Refs.Add("refs/heads/newref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"), true);
20-
Assert.Equal(backend.Refs["refs/heads/newref"], new RefdbBackend.ReferenceData("refs/heads/newref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644")));
20+
Assert.Equal(backend.Refs["refs/heads/newref"], new ReferenceData("refs/heads/newref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644")));
2121
}
2222
}
2323

@@ -29,8 +29,8 @@ public void CanReadFromRefdbBackend()
2929
{
3030
var backend = new MockRefdbBackend(repo);
3131
repo.Refs.SetBackend(backend);
32-
backend.Refs["HEAD"] = new RefdbBackend.ReferenceData("HEAD", "refs/heads/testref");
33-
backend.Refs["refs/heads/testref"] = new RefdbBackend.ReferenceData("refs/heads/testref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
32+
backend.Refs["HEAD"] = new ReferenceData("HEAD", "refs/heads/testref");
33+
backend.Refs["refs/heads/testref"] = new ReferenceData("refs/heads/testref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
3434

3535
Assert.Equal("refs/heads/testref", repo.Refs["HEAD"].TargetIdentifier);
3636
Assert.Equal("be3563ae3f795b2b4353bcce3a527ad0a4f7f644", repo.Refs["HEAD"].ResolveToDirectReference().TargetIdentifier);
@@ -46,8 +46,8 @@ public void CanDeleteFromRefdbBackend()
4646
{
4747
var backend = new MockRefdbBackend(repo);
4848
repo.Refs.SetBackend(backend);
49-
backend.Refs["HEAD"] = new RefdbBackend.ReferenceData("HEAD", "refs/heads/testref");
50-
backend.Refs["refs/heads/testref"] = new RefdbBackend.ReferenceData("refs/heads/testref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
49+
backend.Refs["HEAD"] = new ReferenceData("HEAD", "refs/heads/testref");
50+
backend.Refs["refs/heads/testref"] = new ReferenceData("refs/heads/testref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
5151

5252
repo.Refs.Remove("refs/heads/testref");
5353

@@ -82,9 +82,9 @@ public void CanIterateRefdbBackend()
< 10000 /div>
8282
var backend = new MockRefdbBackend(repo);
8383
repo.Refs.SetBackend(backend);
8484

85-
backend.Refs["HEAD"] = new RefdbBackend.ReferenceData("HEAD", "refs/heads/testref");
86-
backend.Refs["refs/heads/testref"] = new RefdbBackend.ReferenceData("refs/heads/testref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
87-
backend.Refs["refs/heads/othersymbolic"] = new RefdbBackend.ReferenceData("refs/heads/othersymbolic", "refs/heads/testref");
85+
backend.Refs["HEAD"] = new ReferenceData("HEAD", "refs/heads/testref");
86+
backend.Refs["refs/heads/testref"] = new ReferenceData("refs/heads/testref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
87+
backend.Refs["refs/heads/othersymbolic"] = new ReferenceData("refs/heads/othersymbolic", "refs/heads/testref");
8888

8989
Assert.True(repo.Refs.Select(r => r.CanonicalName).SequenceEqual(backend.Refs.Keys));
9090
}
@@ -103,11 +103,11 @@ public void CanIterateTagsInRefdbBackend()
103103
// If libgit2 can't resolve any tag to an OID, then git_tag_list silently fails and returns zero tags.
104104
// This test previously used broken refs to test type filtering, but refdb is no longer responsible for type filtering.
105105
// The old test code is commented below:
106-
// backend.Refs["refs/tags/broken1"] = new RefdbBackend.ReferenceData("refs/tags/broken1", "tags/shouldnt/be/symbolic");
107-
// backend.Refs["refs/tags/broken2"] = new RefdbBackend.ReferenceData("refs/tags/broken2", "but/are/here/for/testing");
108-
// backend.Refs["refs/tags/broken3"] = new RefdbBackend.ReferenceData("refs/tags/broken3", "the/type/filtering");
106+
// backend.Refs["refs/tags/broken1"] = new ReferenceData("refs/tags/broken1", "tags/shouldnt/be/symbolic");
107+
// backend.Refs["refs/tags/broken2"] = new ReferenceData("refs/tags/broken2", "but/are/here/for/testing");
108+
// backend.Refs["refs/tags/broken3"] = new ReferenceData("refs/tags/broken3", "the/type/filtering");
109109

110-
backend.Refs["refs/tags/correct1"] = new RefdbBackend.ReferenceData("refs/tags/correct1", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
110+
backend.Refs["refs/tags/correct1"] = new ReferenceData("refs/tags/correct1", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
111111

112112
var tagNames = repo.Tags.Select(r => r.CanonicalName);
113113
Assert.True(tagNames.SequenceEqual(new List<string> { "refs/tags/correct1" }));
@@ -123,9 +123,9 @@ public void CanIterateRefdbBackendWithGlob()
123123
var backend = new MockRefdbBackend(repo);
124124
repo.Refs.SetBackend(backend);
125125

126-
backend.Refs["HEAD"] = new RefdbBackend.ReferenceData("HEAD", "refs/heads/testref");
127-
backend.Refs["refs/heads/testref"] = new RefdbBackend.ReferenceData("refs/heads/testref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
128-
backend.Refs["refs/heads/othersymbolic"] = new RefdbBackend.ReferenceData("refs/heads/othersymbolic", "refs/heads/testref");
126+
backend.Refs["HEAD"] = new ReferenceData("HEAD", "refs/heads/testref");
127+
backend.Refs["refs/heads/testref"] = new ReferenceData("refs/heads/testref", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
128+
backend.Refs["refs/heads/othersymbolic"] = new ReferenceData("refs/heads/othersymbolic", "refs/heads/testref");
129129

130130
Assert.True(repo.Refs.FromGlob("refs/heads/*").Select(r => r.CanonicalName).SequenceEqual(new List<string>() { "refs/heads/othersymbolic", "refs/heads/testref" }));
131131
Assert.True(repo.Refs.FromGlob("refs/heads/?estref").Select(r => r.CanonicalName).SequenceEqual(new List<string>() { "refs/heads/testref" }));
@@ -140,7 +140,7 @@ public void RefdbBackendCanRenameAReferenceToADeeperReferenceHierarchy()
140140
{
141141
var backend = new MockRefdbBackend(repo);
142142
repo.Refs.SetBackend(backend);
143-
backend.Refs["refs/tags/test"] = new RefdbBackend.ReferenceData("refs/tags/test", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
143+
backend.Refs["refs/tags/test"] = new ReferenceData("refs/tags/test", new ObjectId("be3563ae3f795b2b4353bcce3a527ad0a4f7f644"));
144144
const string newName = "refs/tags/test/deep";
145145

146146
var renamed = repo.Refs.Rename("refs/tags/test", newName);

LibGit2Sharp/Core/GitRefdbBackend.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
namespace LibGit2Sharp.Core
55
{
66
[StructLayout(LayoutKind.Sequential)]
7-
internal unsafe struct GitRefdbIterator
7+
internal struct GitRefdbIterator
88
{
99
static GitRefdbIterator()
1010
{
@@ -27,16 +27,16 @@ static GitRefdbIterator()
2727
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
2828
public delegate int next_callback(
2929
out IntPtr referencePtr,
30-
IntPtr iterator);
30+
IntPtr iteratorPtr);
3131

3232
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
3333
public delegate int next_name_callback(
3434
[MarshalAs(UnmanagedType.CustomMarshaler, MarshalCookie = UniqueId.UniqueIdentifier, MarshalTypeRef = typeof(StrictUtf8Marshaler))] out string refName,
35-
IntPtr iterator);
35+
IntPtr iteratorPtr);
3636

3737
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
3838
public delegate void free_callback(
39-
IntPtr iterator);
39+
IntPtr iteratorPtr);
4040
}
4141

4242
[StructLayout(LayoutKind.Sequential)]

0 commit comments

Comments
 (0)
0