All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.netty.util.internal.shaded.org.jctools.queues.CircularArrayOffsetCalculator Maven / Gradle / Ivy

There is a newer version: 5.0.0.Alpha2
Show newest version
package io.netty.util.internal.shaded.org.jctools.queues;

import io.netty.util.internal.shaded.org.jctools.util.InternalAPI;

import static io.netty.util.internal.shaded.org.jctools.util.UnsafeRefArrayAccess.REF_ARRAY_BASE;
import static io.netty.util.internal.shaded.org.jctools.util.UnsafeRefArrayAccess.REF_ELEMENT_SHIFT;

@InternalAPI
public final class CircularArrayOffsetCalculator
{
    @SuppressWarnings("unchecked")
    public static  E[] allocate(int capacity)
    {
        return (E[]) new Object[capacity];
    }

    /**
     * @param index desirable element index
     * @param mask (length - 1)
     * @return the offset in bytes within the array for a given index.
     */
    public static long calcElementOffset(long index, long mask)
    {
        return REF_ARRAY_BASE + ((index & mask) << REF_ELEMENT_SHIFT);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy