/// <summary> /// Releases the given object if its reference count is 0. /// </summary> static public void TryRelease(this IRefCounted inRef) { if (inRef.ReferenceCount == 0) { inRef.OnReleased(); } }
/// <summary> /// Releases a reference to the given object. /// </summary> static public void ReleaseRef(this IRefCounted inRef, int inRefCount = 1) { if (inRefCount <= 0) { return; } inRef.ReferenceCount -= inRefCount; if (inRef.ReferenceCount == 0) { inRef.OnReleased(); } }