// Token: 0x06006F10 RID: 28432 RVA: 0x0017E114 File Offset: 0x0017C314 internal void Insert(K key, V value) { int num = CerHashtable <K, V> .GetHashCodeHelper(key); if (num < 0) { num = ~num; } K[] keys = this.m_keys; int num2 = num % keys.Length; for (;;) { K k = keys[num2]; if (k == null) { break; } num2++; if (num2 >= keys.Length) { num2 -= keys.Length; } } this.m_count++; this.m_values[num2] = value; Volatile.Write <K>(ref keys[num2], key); }
internal V this[K key] { get { CerHashtable <K, V> .Table table = Volatile.Read <CerHashtable <K, V> .Table>(ref this.m_Table); if (table == null) { return(default(V)); } int num = CerHashtable <K, V> .GetHashCodeHelper(key); if (num < 0) { num = ~num; } K[] kArray = table.m_keys; int index = num % kArray.Length; while (true) { do { K k = Volatile.Read <K>(ref kArray[index]); if ((object)k != null) { if (k.Equals((object)key)) { return(table.m_values[index]); } ++index; } else { goto label_10; } }while (index < kArray.Length); index -= kArray.Length; } label_10: return(default(V)); } set { CerHashtable <K, V> .Table table = this.m_Table; if (table != null) { int newSize = 2 * (table.m_count + 1); if (newSize >= table.m_keys.Length) { this.Rehash(newSize); } } else { this.Rehash(7); } this.m_Table.Insert(key, value); } }
// Token: 0x170009D1 RID: 2513 internal V this[K key] { get { CerHashtable <K, V> .Table table = Volatile.Read <CerHashtable <K, V> .Table>(ref this.m_Table); if (table == null) { return(default(V)); } int num = CerHashtable <K, V> .GetHashCodeHelper(key); if (num < 0) { num = ~num; } K[] keys = table.m_keys; int num2 = num % keys.Length; for (;;) { K k = Volatile.Read <K>(ref keys[num2]); if (k == null) { goto IL_7F; } if (k.Equals(key)) { break; } num2++; if (num2 >= keys.Length) { num2 -= keys.Length; } } return(table.m_values[num2]); IL_7F: return(default(V)); } set { CerHashtable <K, V> .Table table = this.m_Table; if (table != null) { int num = 2 * (table.m_count + 1); if (num >= table.m_keys.Length) { this.Rehash(num); } } else { this.Rehash(7); } this.m_Table.Insert(key, value); } }
internal void Insert(K key, V value) { int num = CerHashtable <K, V> .GetHashCodeHelper(key); if (num < 0) { num = ~num; } K[] kArray = this.m_keys; int index = num % kArray.Length; while ((object)kArray[index] != null) { ++index; if (index >= kArray.Length) { index -= kArray.Length; } } this.m_count = this.m_count + 1; this.m_values[index] = value; Volatile.Write <K>(ref kArray[index], key); }