resizeBuffer method

void resizeBuffer ()

Implementation

void resizeBuffer() {
  var newSize = count * 2 + 1;
  if (newSize < count) throw Exception('Integer overflow');

  final newGroupings = List<Grouping<TKey, TValue>>(newSize);
  var g = lastGrouping;
  do {
    g = g.next;
    final index = g.hashCode % newSize;
    g.hashNext = newGroupings[index];
    newGroupings[index] = g;
  } while (g != lastGrouping);

  groupings = newGroupings;
}