src\Dependencies\PooledObjects\ArrayBuilder.cs (46)
16[DebuggerTypeProxy(typeof(ArrayBuilder<>.DebuggerProxy))]
31private readonly ArrayBuilder<T> _builder;
33public DebuggerProxy(ArrayBuilder<T> builder)
58private readonly ObjectPool<ArrayBuilder<T>>? _pool;
69private ArrayBuilder(ObjectPool<ArrayBuilder<T>> pool)
395var tmp = ArrayBuilder<U>.GetInstance(Count);
443public void FreeAll(Func<T, ArrayBuilder<T>?> getNested)
489private static readonly ObjectPool<ArrayBuilder<T>> s_poolInstance = CreatePool();
490public static ArrayBuilder<T> GetInstance()
492var builder = s_poolInstance.Allocate();
497public static ArrayBuilder<T> GetInstance(int capacity)
499var builder = GetInstance();
504public static ArrayBuilder<T> GetInstance(int capacity, T fillWithValue)
506var builder = GetInstance();
517public static ObjectPool<ArrayBuilder<T>> CreatePool()
522public static ObjectPool<ArrayBuilder<T>> CreatePool(int size)
524ObjectPool<ArrayBuilder<T>>? pool = null;
525pool = new ObjectPool<ArrayBuilder<T>>(() => new ArrayBuilder<T>(pool!), size);
564var accumulator = new Dictionary<K, ArrayBuilder<T>>(Count, comparer);
569if (!accumulator.TryGetValue(key, out var bucket))
571bucket = ArrayBuilder<T>.GetInstance();
589public void AddRange(ArrayBuilder<T> items)
594public void AddRange<U>(ArrayBuilder<U> items, Func<U, T> selector)
602public void AddRange<U>(ArrayBuilder<U> items) where U : T
607public void AddRange<U>(ArrayBuilder<U> items, int start, int length) where U : T
733var result = ArrayBuilder<S>.GetInstance(Count);
823var builder = ArrayBuilder<TResult>.GetInstance(Count);
861var builder = ArrayBuilder<TResult>.GetInstance(Count);
899var builder = ArrayBuilder<TResult>.GetInstance(Count);
939private static readonly ObjectPool<ArrayBuilder<T>> s_keepLargeInstancesPool = CreatePool();
941public static PooledDisposer<ArrayBuilder<T>> GetInstance(out ArrayBuilder<T> instance)
944public static PooledDisposer<ArrayBuilder<T>> GetInstance(int capacity, out ArrayBuilder<T> instance)
947return new PooledDisposer<ArrayBuilder<T>>(instance);
950public static PooledDisposer<ArrayBuilder<T>> GetInstance(int capacity, T fillWithValue, out ArrayBuilder<T> instance)
953return new PooledDisposer<ArrayBuilder<T>>(instance);
956public static PooledDisposer<ArrayBuilder<T>> GetInstance(bool discardLargeInstances, out ArrayBuilder<T> instance)
961return new PooledDisposer<ArrayBuilder<T>>(instance, discardLargeInstances);