using System; namespace UnityEditor.Graphing { public class PooledObject : IDisposable where T : new() { private ObjectPool m_ObjectPool; public T value { get; private set; } internal PooledObject(ObjectPool objectPool, T value) { m_ObjectPool = objectPool; this.value = value; } private void ReleaseUnmanagedResources() { m_ObjectPool.Release(value); } public void Dispose() { ReleaseUnmanagedResources(); GC.SuppressFinalize(this); } ~PooledObject() { ReleaseUnmanagedResources(); } } }