public DefaultResourceLeak(ResourceLeakDetector owner, object referent) { Debug.Assert(referent is object); this.owner = owner; GCNotice gcNotice; do { GCNotice gcNotice0 = null; gcNotice = owner.gcNotificationMap.GetValue(referent, referent0 => { gcNotice0 = new GCNotice(referent0, owner); return(gcNotice0); }); if (gcNotice0 is object && gcNotice0 != gcNotice) { GC.SuppressFinalize(gcNotice0); } }while (!gcNotice.Arm(this, owner, referent)); this.gcNotice = new WeakReference <GCNotice>(gcNotice); this.head = RecordEntry.Bottom; Record(); }