40 table._activeEnumeratorRefCount++;
72 if (container !=
null)
126 for (
int i = 0; i <
_buckets.Length; i++)
150 int num3 = num & (_buckets.Length - 1);
167 int num2 = num & (_buckets.Length - 1);
225 reference.depHnd.UnsafeSetTargetToNull();
242 for (
int i = 0; i <
_entries.Length; i++)
267 for (
int i = 0; i <
array.Length; i++)
273 bool flag =
_parent !=
null && _parent._activeEnumeratorRefCount > 0;
280 int num = (reference2.HashCode =
reference.HashCode);
282 int num2 = num & (array.Length - 1);
299 reference4.HashCode = hashCode;
300 reference4.depHnd = depHnd;
301 int num3 = hashCode & (array.Length - 1);
342 if (
_parent._container ==
this)
344 _parent._container =
null;
359 for (; i <
entries.Length; i++)
377 _lock =
new object();
static ? object CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type type, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture)
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
Enumerator GetEnumerator()
static void SuppressFinalize(object obj)
static void KeepAlive(object? obj)
static void ReRegisterForFinalize(object obj)
Container(ConditionalWeakTable< TKey, TValue > parent)
bool TryGetEntry(int index, [NotNullWhen(true)] out TKey key, [MaybeNullWhen(false)] out TValue value)
Container Resize(int newSize)
Container(ConditionalWeakTable< TKey, TValue > parent, int[] buckets, Entry[] entries, int firstFreeEntry)
volatile object _oldKeepAlive
void RemoveIndex(int entryIndex)
void UpdateValue(int entryIndex, TValue newValue)
void CreateEntryNoResize(TKey key, TValue value)
int FindEntry(TKey key, out object value)
bool TryGetValueWorker(TKey key, [MaybeNullWhen(false)] out TValue value)
readonly ConditionalWeakTable< TKey, TValue > _parent
ConditionalWeakTable< TKey, TValue > _table
KeyValuePair< TKey, TValue > Current
KeyValuePair< TKey, TValue > _current
object IEnumerator. Current
readonly int _maxIndexInclusive
Enumerator(ConditionalWeakTable< TKey, TValue > table)
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
void AddOrUpdate(TKey key, TValue value)
TValue GetValueLocked(TKey key, CreateValueCallback createValueCallback)
IEnumerator< KeyValuePair< TKey, TValue > > IEnumerable< KeyValuePair< TKey, TValue > >. GetEnumerator()
TValue GetOrCreateValue(TKey key)
volatile Container _container
delegate TValue CreateValueCallback(TKey key)
int _activeEnumeratorRefCount
TValue GetValue(TKey key, CreateValueCallback createValueCallback)
void Add(TKey key, TValue value)
void CreateEntry(TKey key, TValue value)
static int GetHashCode(object? o)
static string InvalidOperation_CollectionCorrupted
static int Exchange(ref int location1, int value)
static bool Read(ref bool location)
static void Write(ref bool location, bool value)
static void ThrowInvalidOperationException_InvalidOperation_EnumOpCantHappen()
static void ThrowArgumentNullException(string name)
static void ThrowArgumentException(ExceptionResource resource)
new IEnumerator< T > GetEnumerator()
DynamicallyAccessedMemberTypes
@ PublicParameterlessConstructor
void UnsafeSetDependent(object dependent)
object UnsafeGetTargetAndDependent(out object dependent)