internal static List GetWeakRefs(PythonContext context, object o) { List l = new List(); IWeakReferenceable iwr; if (context.TryConvertToWeakReferenceable(o, out iwr)) { WeakRefTracker wrt = iwr.GetWeakRef(); if (wrt != null) { for (int i = 0; i < wrt.HandlerCount; i++) { l.AddNoLock(wrt.GetWeakRef(i)); } } } return l; }
internal static int GetWeakRefCount(PythonContext context, object o) { IWeakReferenceable iwr; if (context.TryConvertToWeakReferenceable(o, out iwr)) { WeakRefTracker wrt = iwr.GetWeakRef(); if (wrt != null) return wrt.HandlerCount; } return 0; }