7 instantiations of RefAsValueType
System.Collections.Immutable (7)
System\Collections\Immutable\AllocFreeConcurrentStack.cs (1)
33localStack.Push(new RefAsValueType<T>(item));
System\Collections\Immutable\ImmutableList_1.Enumerator.cs (3)
211stack.Push(new RefAsValueType<Node>(node)); 223stack.Push(new RefAsValueType<Node>(node)); 279stack.Push(new RefAsValueType<Node>(node));
System\Collections\Immutable\ImmutableSortedDictionary_2.Enumerator.cs (1)
214stack.Push(new RefAsValueType<Node>(node));
System\Collections\Immutable\ImmutableSortedSet_1.Enumerator.cs (1)
219stack.Push(new RefAsValueType<Node>(node));
System\Collections\Immutable\SortedInt32KeyNode.Enumerator.cs (1)
185stack.Push(new RefAsValueType<SortedInt32KeyNode<TValue>>(node));
43 references to RefAsValueType
System.Collections.Immutable (43)
System\Collections\Immutable\AllocFreeConcurrentStack.cs (4)
15private static Stack<RefAsValueType<T>>? t_stack; 22Stack<RefAsValueType<T>> localStack = 24t_stack ??= new Stack<RefAsValueType<T>>(MaxSize); 40Stack<RefAsValueType<T>>? localStack = t_stack; // cache in a local to avoid unnecessary TLS hits on repeated accesses
System\Collections\Immutable\ImmutableList_1.Enumerator.cs (9)
67private SecurePooledObject<Stack<RefAsValueType<Node>>>? _stack; 107if (!SecureObjectPool<Stack<RefAsValueType<Node>>, Enumerator>.TryTake(this, out _stack)) 109_stack = SecureObjectPool<Stack<RefAsValueType<Node>>, Enumerator>.PrepNew(this, new Stack<RefAsValueType<Node>>(root.Height)); 148if (_stack != null && _stack.TryUse(ref this, out Stack<RefAsValueType<Node>>? stack)) 151SecureObjectPool<Stack<RefAsValueType<Node>>, Enumerator>.TryAdd(this, _stack!); 168Stack<RefAsValueType<ImmutableList<T>.Node>> stack = _stack.Use(ref this); 202Stack<RefAsValueType<ImmutableList<T>.Node>> stack = _stack.Use(ref this); 276Stack<RefAsValueType<ImmutableList<T>.Node>> stack = _stack.Use(ref this);
System\Collections\Immutable\ImmutableSortedDictionary_2.Enumerator.cs (9)
47private SecurePooledObject<Stack<RefAsValueType<Node>>>? _stack; 76if (!SecureObjectPool<Stack<RefAsValueType<Node>>, Enumerator>.TryTake(this, out _stack)) 78_stack = SecureObjectPool<Stack<RefAsValueType<Node>>, Enumerator>.PrepNew(this, new Stack<RefAsValueType<Node>>(root.Height)); 123if (_stack != null && _stack.TryUse(ref this, out Stack<RefAsValueType<Node>>? stack)) 126SecureObjectPool<Stack<RefAsValueType<Node>>, Enumerator>.TryAdd(this, _stack!); 143Stack<RefAsValueType<ImmutableSortedDictionary<TKey, TValue>.Node>> stack = _stack.Use(ref this); 168Stack<RefAsValueType<ImmutableSortedDictionary<TKey, TValue>.Node>> stack = _stack.Use(ref this); 211Stack<RefAsValueType<ImmutableSortedDictionary<TKey, TValue>.Node>> stack = _stack.Use(ref this);
System\Collections\Immutable\ImmutableSortedSet_1.Enumerator.cs (10)
52/// We use <see cref="RefAsValueType{T}"/> as a wrapper to avoid paying the cost of covariant checks whenever 59private SecurePooledObject<Stack<RefAsValueType<Node>>>? _stack; 88if (!SecureObjectPool<Stack<RefAsValueType<Node>>, Enumerator>.TryTake(this, out _stack)) 90_stack = SecureObjectPool<Stack<RefAsValueType<Node>>, Enumerator>.PrepNew(this, new Stack<RefAsValueType<Node>>(root.Height)); 134if (_stack != null && _stack.TryUse(ref this, out Stack<RefAsValueType<Node>>? stack)) 137SecureObjectPool<Stack<RefAsValueType<Node>>, Enumerator>.TryAdd(this, _stack!); 151Stack<RefAsValueType<ImmutableSortedSet<T>.Node>> stack = _stack!.Use(ref this); 175Stack<RefAsValueType<ImmutableSortedSet<T>.Node>> stack = _stack!.Use(ref this); 216Stack<RefAsValueType<ImmutableSortedSet<T>.Node>> stack = _stack!.Use(ref this);
System\Collections\Immutable\RefAsValueType.cs (2)
14/// We use <see cref="RefAsValueType{T}"/> as a wrapper to avoid paying the cost of covariant checks whenever 25/// Initializes a new instance of the <see cref="RefAsValueType{T}"/> struct.
System\Collections\Immutable\SortedInt32KeyNode.Enumerator.cs (9)
41private SecurePooledObject<Stack<RefAsValueType<SortedInt32KeyNode<TValue>>>>? _stack; 62if (!SecureObjectPool<Stack<RefAsValueType<SortedInt32KeyNode<TValue>>>, Enumerator>.TryTake(this, out _stack)) 64_stack = SecureObjectPool<Stack<RefAsValueType<SortedInt32KeyNode<TValue>>>, Enumerator>.PrepNew(this, new Stack<RefAsValueType<SortedInt32KeyNode<TValue>>>(root.Height)); 109if (_stack != null && _stack.TryUse(ref this, out Stack<RefAsValueType<SortedInt32KeyNode<TValue>>>? stack)) 112SecureObjectPool<Stack<RefAsValueType<SortedInt32KeyNode<TValue>>>, Enumerator>.TryAdd(this, _stack!); 128Stack<RefAsValueType<SortedInt32KeyNode<TValue>>> stack = _stack.Use(ref this); 152Stack<RefAsValueType<SortedInt32KeyNode<TValue>>> stack = _stack.Use(ref this); 182Stack<RefAsValueType<SortedInt32KeyNode<TValue>>> stack = _stack!.Use(ref this);