Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,23 @@

namespace System.Runtime.InteropServices
{
internal static class ReferenceTrackerHost
internal readonly unsafe struct ReferenceTrackerHost
{
[FixedAddressValueType]
private static readonly unsafe IntPtr s_globalHostServices = (IntPtr)Unsafe.AsPointer(in HostServices.Vftbl);
private static readonly ReferenceTrackerHost s_instance =
new((IReferenceTrackerHostVftbl*)Unsafe.AsPointer(in HostServices.Vftbl));
Comment thread
jkotas marked this conversation as resolved.

private readonly IReferenceTrackerHostVftbl* _vftbl;

private ReferenceTrackerHost(IReferenceTrackerHostVftbl* vftbl)
{
_vftbl = vftbl;
}

// Called when an IReferenceTracker instance is found.
public static unsafe void SetReferenceTrackerHost(IntPtr trackerManager)
public static void SetReferenceTrackerHost(IntPtr trackerManager)
{
IReferenceTrackerManager.SetReferenceTrackerHost(trackerManager, (IntPtr)Unsafe.AsPointer(in s_globalHostServices));
IReferenceTrackerManager.SetReferenceTrackerHost(trackerManager, (IntPtr)Unsafe.AsPointer(in s_instance));
}

#pragma warning disable IDE0060, CS3016
Expand Down
Loading