lightning-core/src/main/java/org/apache/directmemory/lightning/internal/util/FastIntMap.java [81:134]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        final Entry<V>[] table = this.table;
        int index = index( key );

        // Check if key already exists.
        for ( Entry<V> e = table[index]; e != null; e = e.next )
        {
            if ( e.key != key )
            {
                continue;
            }
            V oldValue = e.value;
            e.value = value;
            return oldValue;
        }

        table[index] = new Entry<V>( key, value, table[index] );

        if ( size++ >= threshold )
        {
            rehash( table );
        }

        return null;
    }

    private void rehash( final Entry<V>[] table )
    {
        final int newCapacity = 2 * capacity;
        final int newMask = newCapacity - 1;

        final Entry<V>[] newTable = new Entry[newCapacity];

        for ( int i = 0, index; i < table.length; i++ )
        {
            Entry<V> e = table[i];
            if ( e == null )
            {
                continue;
            }
            do
            {
                final Entry<V> next = e.next;
                index = index( e.key, newMask );
                e.next = newTable[index];
                newTable[index] = e;
                e = next;
            }
            while ( e != null );
        }

        this.table = newTable;
        capacity = newCapacity;
        mask = newMask;
        threshold *= 2;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



lightning-core/src/main/java/org/apache/directmemory/lightning/internal/util/FastLongMap.java [86:139]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        final Entry<V>[] table = this.table;
        int index = index( key );

        // Check if key already exists.
        for ( Entry<V> e = table[index]; e != null; e = e.next )
        {
            if ( e.key != key )
            {
                continue;
            }
            V oldValue = e.value;
            e.value = value;
            return oldValue;
        }

        table[index] = new Entry<V>( key, value, table[index] );

        if ( size++ >= threshold )
        {
            rehash( table );
        }

        return null;
    }

    private void rehash( final Entry<V>[] table )
    {
        final int newCapacity = 2 * capacity;
        final int newMask = newCapacity - 1;

        final Entry<V>[] newTable = new Entry[newCapacity];

        for ( int i = 0, index; i < table.length; i++ )
        {
            Entry<V> e = table[i];
            if ( e == null )
            {
                continue;
            }
            do
            {
                final Entry<V> next = e.next;
                index = index( e.key, newMask );
                e.next = newTable[index];
                newTable[index] = e;
                e = next;
            }
            while ( e != null );
        }

        this.table = newTable;
        capacity = newCapacity;
        mask = newMask;
        threshold *= 2;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



