@Override public Fields updateBucket(int key, byte val, UpdateCallback callback) { hasher.updateBucket(key, val, callback); if (hasher.getNumElements() >= growthBound) { int[] fields = hasher.getFields(); this.growthBound = 3 * (fields.length >>> 2); if (fields.length == switchToDenseSize) { Fields retVal = denseFactory.make(preamble); BucketIterator iter = getBucketIterator(); while (iter.next()) { retVal.updateBucket(iter.getKey(), iter.getValue(), NOOP_CB); } return retVal; } else { hasher.resetFields(fields.length << 1); hasher.boostrap(fields); } } return this; }