public final class io.netty.util.internal.PlatformDependent extends java.lang.Object
{
private static final io.netty.util.internal.logging.InternalLogger logger;
private static final java.util.regex.Pattern MAX_DIRECT_MEMORY_SIZE_ARG_PATTERN;
private static final boolean MAYBE_SUPER_USER;
private static final boolean CAN_ENABLE_TCP_NODELAY_BY_DEFAULT;
private static final java.lang.Throwable UNSAFE_UNAVAILABILITY_CAUSE;
private static final boolean DIRECT_BUFFER_PREFERRED;
private static final long MAX_DIRECT_MEMORY;
private static final int MPSC_CHUNK_SIZE;
private static final int MIN_MAX_MPSC_CAPACITY;
private static final int MAX_ALLOWED_MPSC_CAPACITY;
private static final long BYTE_ARRAY_BASE_OFFSET;
private static final java.io.File TMPDIR;
private static final int BIT_MODE;
private static final java.lang.String NORMALIZED_ARCH;
private static final java.lang.String NORMALIZED_OS;
private static final java.lang.String[] ALLOWED_LINUX_OS_CLASSIFIERS;
private static final java.util.Set LINUX_OS_CLASSIFIERS;
private static final boolean IS_WINDOWS;
private static final boolean IS_OSX;
private static final boolean IS_J9_JVM;
private static final boolean IS_IVKVM_DOT_NET;
private static final int ADDRESS_SIZE;
private static final boolean USE_DIRECT_BUFFER_NO_CLEANER;
private static final java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER;
private static final long DIRECT_MEMORY_LIMIT;
private static final io.netty.util.internal.PlatformDependent$ThreadLocalRandomProvider RANDOM_PROVIDER;
private static final io.netty.util.internal.Cleaner CLEANER;
private static final int UNINITIALIZED_ARRAY_ALLOCATION_THRESHOLD;
private static final java.lang.String[] OS_RELEASE_FILES;
private static final java.lang.String LINUX_ID_PREFIX;
private static final java.lang.String LINUX_ID_LIKE_PREFIX;
public static final boolean BIG_ENDIAN_NATIVE_ORDER;
private static final io.netty.util.internal.Cleaner NOOP;
static final boolean $assertionsDisabled;
static void addFilesystemOsClassifiers(java.util.Set, java.util.Set)
{
io.netty.util.internal.PlatformDependent$4 v;
java.util.Set v, v;
java.lang.String[] v;
java.io.File v;
int v, v;
java.lang.Object v;
java.lang.String v;
boolean v;
v := @parameter: java.util.Set;
v := @parameter: java.util.Set;
v = <io.netty.util.internal.PlatformDependent: java.lang.String[] OS_RELEASE_FILES>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
v = new io.netty.util.internal.PlatformDependent$4;
specialinvoke v.<io.netty.util.internal.PlatformDependent$4: void <init>(java.io.File,java.util.Set,java.util.Set,java.lang.String)>(v, v, v, v);
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedAction)>(v);
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
if v != 0 goto label;
v = v + 1;
goto label;
label:
return;
}
static boolean addPropertyOsClassifiers(java.util.Set, java.util.Set)
{
java.util.Set v, v;
java.lang.String[] v, v;
java.lang.IllegalArgumentException v, v;
int v, v, v, v;
java.lang.String v, v, v, v;
boolean v;
v := @parameter: java.util.Set;
v := @parameter: java.util.Set;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String)>("io.netty.osClassifiers");
if v != null goto label;
return 0;
label:
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
return 1;
label:
v = virtualinvoke v.<java.lang.String: java.lang.String[] split(java.lang.String)>(",");
v = lengthof v;
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>("io.netty.osClassifiers", v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u property is not empty, but contains no classifiers: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = lengthof v;
if v <= 2 goto label;
v = new java.lang.IllegalArgumentException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>("io.netty.osClassifiers", v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u property contains more than 2 classifiers: \u0001");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>(v);
throw v;
label:
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = newarray (java.lang.String)[1];
v[0] = v;
staticinvoke <io.netty.util.internal.PlatformDependent: void addClassifier(java.util.Set,java.util.Set,java.lang.String[])>(v, v, v);
v = v + 1;
goto label;
label:
return 1;
}
public static long byteArrayBaseOffset()
{
long v;
v = <io.netty.util.internal.PlatformDependent: long BYTE_ARRAY_BASE_OFFSET>;
return v;
}
public static boolean hasDirectBufferNoCleanerConstructor()
{
boolean v;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean hasDirectBufferNoCleanerConstructor()>();
return v;
}
public static byte[] allocateUninitializedArray(int)
{
byte[] v;
int v, v, v;
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: int UNINITIALIZED_ARRAY_ALLOCATION_THRESHOLD>;
if v < 0 goto label;
v = <io.netty.util.internal.PlatformDependent: int UNINITIALIZED_ARRAY_ALLOCATION_THRESHOLD>;
if v <= v goto label;
label:
v = newarray (byte)[v];
goto label;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: byte[] allocateUninitializedArray(int)>(v);
label:
return v;
}
public static boolean isAndroid()
{
boolean v;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean isAndroid()>();
return v;
}
public static boolean isWindows()
{
boolean v;
v = <io.netty.util.internal.PlatformDependent: boolean IS_WINDOWS>;
return v;
}
public static boolean isOsx()
{
boolean v;
v = <io.netty.util.internal.PlatformDependent: boolean IS_OSX>;
return v;
}
public static boolean maybeSuperUser()
{
boolean v;
v = <io.netty.util.internal.PlatformDependent: boolean MAYBE_SUPER_USER>;
return v;
}
public static int javaVersion()
{
int v;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int javaVersion()>();
return v;
}
public static boolean canEnableTcpNoDelayByDefault()
{
boolean v;
v = <io.netty.util.internal.PlatformDependent: boolean CAN_ENABLE_TCP_NODELAY_BY_DEFAULT>;
return v;
}
public static boolean hasUnsafe()
{
java.lang.Throwable v;
boolean v;
v = <io.netty.util.internal.PlatformDependent: java.lang.Throwable UNSAFE_UNAVAILABILITY_CAUSE>;
if v != null goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static java.lang.Throwable getUnsafeUnavailabilityCause()
{
java.lang.Throwable v;
v = <io.netty.util.internal.PlatformDependent: java.lang.Throwable UNSAFE_UNAVAILABILITY_CAUSE>;
return v;
}
public static boolean isUnaligned()
{
boolean v;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean isUnaligned()>();
return v;
}
public static boolean directBufferPreferred()
{
boolean v;
v = <io.netty.util.internal.PlatformDependent: boolean DIRECT_BUFFER_PREFERRED>;
return v;
}
public static long maxDirectMemory()
{
long v;
v = <io.netty.util.internal.PlatformDependent: long DIRECT_MEMORY_LIMIT>;
return v;
}
public static long usedDirectMemory()
{
java.util.concurrent.atomic.AtomicLong v, v;
long v;
v = <io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER>;
if v == null goto label;
v = <io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long get()>();
goto label;
label:
v = -1L;
label:
return v;
}
public static java.io.File tmpdir()
{
java.io.File v;
v = <io.netty.util.internal.PlatformDependent: java.io.File TMPDIR>;
return v;
}
public static int bitMode()
{
int v;
v = <io.netty.util.internal.PlatformDependent: int BIT_MODE>;
return v;
}
public static int addressSize()
{
int v;
v = <io.netty.util.internal.PlatformDependent: int ADDRESS_SIZE>;
return v;
}
public static long allocateMemory(long)
{
long v, v;
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: long allocateMemory(long)>(v);
return v;
}
public static void freeMemory(long)
{
long v;
v := @parameter: long;
staticinvoke <io.netty.util.internal.PlatformDependent0: void freeMemory(long)>(v);
return;
}
public static long reallocateMemory(long, long)
{
long v, v, v;
v := @parameter: long;
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: long reallocateMemory(long,long)>(v, v);
return v;
}
public static void throwException(java.lang.Throwable)
{
java.lang.Throwable v;
boolean v;
v := @parameter: java.lang.Throwable;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
staticinvoke <io.netty.util.internal.PlatformDependent0: void throwException(java.lang.Throwable)>(v);
goto label;
label:
staticinvoke <io.netty.util.internal.PlatformDependent: void throwException0(java.lang.Throwable)>(v);
label:
return;
}
private static void throwException0(java.lang.Throwable) throws java.lang.Throwable
{
java.lang.Throwable v;
v := @parameter: java.lang.Throwable;
throw v;
}
public static java.util.concurrent.ConcurrentMap newConcurrentHashMap()
{
java.util.concurrent.ConcurrentHashMap v;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>()>();
return v;
}
public static io.netty.util.internal.LongCounter newLongCounter()
{
int v;
io.netty.util.internal.LongAdderCounter v;
io.netty.util.internal.PlatformDependent$AtomicLongCounter v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 8 goto label;
v = new io.netty.util.internal.LongAdderCounter;
specialinvoke v.<io.netty.util.internal.LongAdderCounter: void <init>()>();
return v;
label:
v = new io.netty.util.internal.PlatformDependent$AtomicLongCounter;
specialinvoke v.<io.netty.util.internal.PlatformDependent$AtomicLongCounter: void <init>()>();
return v;
}
public static java.util.concurrent.ConcurrentMap newConcurrentHashMap(int)
{
int v;
java.util.concurrent.ConcurrentHashMap v;
v := @parameter: int;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int)>(v);
return v;
}
public static java.util.concurrent.ConcurrentMap newConcurrentHashMap(int, float)
{
int v;
java.util.concurrent.ConcurrentHashMap v;
float v;
v := @parameter: int;
v := @parameter: float;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int,float)>(v, v);
return v;
}
public static java.util.concurrent.ConcurrentMap newConcurrentHashMap(int, float, int)
{
int v, v;
java.util.concurrent.ConcurrentHashMap v;
float v;
v := @parameter: int;
v := @parameter: float;
v := @parameter: int;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(int,float,int)>(v, v, v);
return v;
}
public static java.util.concurrent.ConcurrentMap newConcurrentHashMap(java.util.Map)
{
java.util.concurrent.ConcurrentHashMap v;
java.util.Map v;
v := @parameter: java.util.Map;
v = new java.util.concurrent.ConcurrentHashMap;
specialinvoke v.<java.util.concurrent.ConcurrentHashMap: void <init>(java.util.Map)>(v);
return v;
}
public static void freeDirectBuffer(java.nio.ByteBuffer)
{
io.netty.util.internal.Cleaner v;
java.nio.ByteBuffer v;
v := @parameter: java.nio.ByteBuffer;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner CLEANER>;
interfaceinvoke v.<io.netty.util.internal.Cleaner: void freeDirectBuffer(java.nio.ByteBuffer)>(v);
return;
}
public static long directBufferAddress(java.nio.ByteBuffer)
{
long v;
java.nio.ByteBuffer v;
v := @parameter: java.nio.ByteBuffer;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: long directBufferAddress(java.nio.ByteBuffer)>(v);
return v;
}
public static java.nio.ByteBuffer directBuffer(long, int)
{
java.lang.UnsupportedOperationException v;
int v;
long v;
java.nio.ByteBuffer v;
boolean v;
v := @parameter: long;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean hasDirectBufferNoCleanerConstructor()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.nio.ByteBuffer newDirectBuffer(long,int)>(v, v);
return v;
label:
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("sun.misc.Unsafe or java.nio.DirectByteBuffer.<init>(long, int) not available");
throw v;
}
public static java.lang.Object getObject(java.lang.Object, long)
{
java.lang.Object v, v;
long v;
v := @parameter: java.lang.Object;
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.lang.Object getObject(java.lang.Object,long)>(v, v);
return v;
}
public static int getInt(java.lang.Object, long)
{
int v;
java.lang.Object v;
long v;
v := @parameter: java.lang.Object;
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int getInt(java.lang.Object,long)>(v, v);
return v;
}
static void safeConstructPutInt(java.lang.Object, long, int)
{
int v;
java.lang.Object v;
long v;
v := @parameter: java.lang.Object;
v := @parameter: long;
v := @parameter: int;
staticinvoke <io.netty.util.internal.PlatformDependent0: void safeConstructPutInt(java.lang.Object,long,int)>(v, v, v);
return;
}
public static int getIntVolatile(long)
{
int v;
long v;
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int getIntVolatile(long)>(v);
return v;
}
public static void putIntOrdered(long, int)
{
int v;
long v;
v := @parameter: long;
v := @parameter: int;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putIntOrdered(long,int)>(v, v);
return;
}
public static byte getByte(long)
{
long v;
byte v;
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: byte getByte(long)>(v);
return v;
}
public static short getShort(long)
{
long v;
short v;
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: short getShort(long)>(v);
return v;
}
public static int getInt(long)
{
int v;
long v;
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int getInt(long)>(v);
return v;
}
public static long getLong(long)
{
long v, v;
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: long getLong(long)>(v);
return v;
}
public static byte getByte(byte[], int)
{
int v;
byte[] v;
byte v;
v := @parameter: byte[];
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: byte getByte(byte[],int)>(v, v);
return v;
}
public static byte getByte(byte[], long)
{
byte[] v;
long v;
byte v;
v := @parameter: byte[];
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: byte getByte(byte[],long)>(v, v);
return v;
}
public static short getShort(byte[], int)
{
int v;
byte[] v;
short v;
v := @parameter: byte[];
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: short getShort(byte[],int)>(v, v);
return v;
}
public static int getInt(byte[], int)
{
int v, v;
byte[] v;
v := @parameter: byte[];
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int getInt(byte[],int)>(v, v);
return v;
}
public static int getInt(int[], long)
{
int v;
long v;
int[] v;
v := @parameter: int[];
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int getInt(int[],long)>(v, v);
return v;
}
public static long getLong(byte[], int)
{
int v;
byte[] v;
long v;
v := @parameter: byte[];
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: long getLong(byte[],int)>(v, v);
return v;
}
public static long getLong(long[], long)
{
long v, v;
long[] v;
v := @parameter: long[];
v := @parameter: long;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: long getLong(long[],long)>(v, v);
return v;
}
private static long getLongSafe(byte[], int)
{
byte[] v;
byte v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
long v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: boolean BIG_ENDIAN_NATIVE_ORDER>;
if v == 0 goto label;
v = v[v];
v = v << 56;
v = v + 1;
v = v[v];
v = v & 255L;
v = v << 48;
v = v | v;
v = v + 2;
v = v[v];
v = v & 255L;
v = v << 40;
v = v | v;
v = v + 3;
v = v[v];
v = v & 255L;
v = v << 32;
v = v | v;
v = v + 4;
v = v[v];
v = v & 255L;
v = v << 24;
v = v | v;
v = v + 5;
v = v[v];
v = v & 255L;
v = v << 16;
v = v | v;
v = v + 6;
v = v[v];
v = v & 255L;
v = v << 8;
v = v | v;
v = v + 7;
v = v[v];
v = v & 255L;
v = v | v;
return v;
label:
v = v[v];
v = v & 255L;
v = v + 1;
v = v[v];
v = v & 255L;
v = v << 8;
v = v | v;
v = v + 2;
v = v[v];
v = v & 255L;
v = v << 16;
v = v | v;
v = v + 3;
v = v[v];
v = v & 255L;
v = v << 24;
v = v | v;
v = v + 4;
v = v[v];
v = v & 255L;
v = v << 32;
v = v | v;
v = v + 5;
v = v[v];
v = v & 255L;
v = v << 40;
v = v | v;
v = v + 6;
v = v[v];
v = v & 255L;
v = v << 48;
v = v | v;
v = v + 7;
v = v[v];
v = v << 56;
v = v | v;
return v;
}
private static int getIntSafe(byte[], int)
{
byte[] v;
byte v, v, v, v, v, v, v, v;
boolean v;
short v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: boolean BIG_ENDIAN_NATIVE_ORDER>;
if v == 0 goto label;
v = v[v];
v = v << 24;
v = v + 1;
v = v[v];
v = v & 255;
v = v << 16;
v = v | v;
v = v + 2;
v = v[v];
v = v & 255;
v = v << 8;
v = v | v;
v = v + 3;
v = v[v];
v = v & 255;
v = v | v;
return v;
label:
v = v[v];
v = v & 255;
v = v + 1;
v = v[v];
v = v & 255;
v = v << 8;
v = v | v;
v = v + 2;
v = v[v];
v = v & 255;
v = v << 16;
v = v | v;
v = v + 3;
v = v[v];
v = v << 24;
v = v | v;
return v;
}
private static short getShortSafe(byte[], int)
{
byte[] v;
short v, v;
byte v, v, v, v;
int v, v, v, v, v, v, v;
boolean v;
v := @parameter: byte[];
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: boolean BIG_ENDIAN_NATIVE_ORDER>;
if v == 0 goto label;
v = v[v];
v = v << 8;
v = v + 1;
v = v[v];
v = v & 255;
v = v | v;
return v;
label:
v = v[v];
v = v & 255;
v = v + 1;
v = v[v];
v = v << 8;
v = v | v;
return v;
}
private static int hashCodeAsciiCompute(java.lang.CharSequence, int, int)
{
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v;
java.lang.CharSequence v;
v := @parameter: java.lang.CharSequence;
v := @parameter: int;
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: boolean BIG_ENDIAN_NATIVE_ORDER>;
if v == 0 goto label;
v = v * -862048943;
v = v + 4;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiSanitizeInt(java.lang.CharSequence,int)>(v, v);
v = v * 461845907;
v = v + v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiSanitizeInt(java.lang.CharSequence,int)>(v, v);
v = v + v;
return v;
label:
v = v * -862048943;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiSanitizeInt(java.lang.CharSequence,int)>(v, v);
v = v * 461845907;
v = v + v;
v = v + 4;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiSanitizeInt(java.lang.CharSequence,int)>(v, v);
v = v + v;
return v;
}
private static int hashCodeAsciiSanitizeInt(java.lang.CharSequence, int)
{
boolean v;
java.lang.CharSequence v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
char v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: java.lang.CharSequence;
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: boolean BIG_ENDIAN_NATIVE_ORDER>;
if v == 0 goto label;
v = v + 3;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v + 2;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v << 8;
v = v | v;
v = v + 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v << 16;
v = v | v;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v << 24;
v = v | v;
return v;
label:
v = v + 3;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v << 24;
v = v + 2;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v << 16;
v = v | v;
v = v + 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v << 8;
v = v | v;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v | v;
return v;
}
private static int hashCodeAsciiSanitizeShort(java.lang.CharSequence, int)
{
int v, v, v, v, v, v, v;
boolean v;
java.lang.CharSequence v;
char v, v, v, v, v, v, v, v;
v := @parameter: java.lang.CharSequence;
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: boolean BIG_ENDIAN_NATIVE_ORDER>;
if v == 0 goto label;
v = v + 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v << 8;
v = v | v;
return v;
label:
v = v + 1;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v << 8;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 31;
v = v | v;
return v;
}
private static int hashCodeAsciiSanitizeByte(char)
{
char v, v;
v := @parameter: char;
v = v & 31;
return v;
}
public static void putByte(long, byte)
{
long v;
byte v;
v := @parameter: long;
v := @parameter: byte;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putByte(long,byte)>(v, v);
return;
}
public static void putShort(long, short)
{
long v;
short v;
v := @parameter: long;
v := @parameter: short;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putShort(long,short)>(v, v);
return;
}
public static void putInt(long, int)
{
int v;
long v;
v := @parameter: long;
v := @parameter: int;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putInt(long,int)>(v, v);
return;
}
public static void putLong(long, long)
{
long v, v;
v := @parameter: long;
v := @parameter: long;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putLong(long,long)>(v, v);
return;
}
public static void putByte(byte[], int, byte)
{
int v;
byte[] v;
byte v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: byte;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putByte(byte[],int,byte)>(v, v, v);
return;
}
public static void putByte(java.lang.Object, long, byte)
{
java.lang.Object v;
long v;
byte v;
v := @parameter: java.lang.Object;
v := @parameter: long;
v := @parameter: byte;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putByte(java.lang.Object,long,byte)>(v, v, v);
return;
}
public static void putShort(byte[], int, short)
{
int v;
byte[] v;
short v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: short;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putShort(byte[],int,short)>(v, v, v);
return;
}
public static void putInt(byte[], int, int)
{
int v, v;
byte[] v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putInt(byte[],int,int)>(v, v, v);
return;
}
public static void putLong(byte[], int, long)
{
int v;
byte[] v;
long v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: long;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putLong(byte[],int,long)>(v, v, v);
return;
}
public static void putObject(java.lang.Object, long, java.lang.Object)
{
java.lang.Object v, v;
long v;
v := @parameter: java.lang.Object;
v := @parameter: long;
v := @parameter: java.lang.Object;
staticinvoke <io.netty.util.internal.PlatformDependent0: void putObject(java.lang.Object,long,java.lang.Object)>(v, v, v);
return;
}
public static long objectFieldOffset(java.lang.reflect.Field)
{
long v;
java.lang.reflect.Field v;
v := @parameter: java.lang.reflect.Field;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: long objectFieldOffset(java.lang.reflect.Field)>(v);
return v;
}
public static void copyMemory(long, long, long)
{
long v, v, v;
v := @parameter: long;
v := @parameter: long;
v := @parameter: long;
staticinvoke <io.netty.util.internal.PlatformDependent0: void copyMemory(long,long,long)>(v, v, v);
return;
}
public static void copyMemory(byte[], int, long, long)
{
byte[] v;
int v;
long v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: long;
v := @parameter: long;
v = <io.netty.util.internal.PlatformDependent: long BYTE_ARRAY_BASE_OFFSET>;
v = v + v;
staticinvoke <io.netty.util.internal.PlatformDependent0: void copyMemory(java.lang.Object,long,java.lang.Object,long,long)>(v, v, null, v, v);
return;
}
public static void copyMemory(byte[], int, byte[], int, long)
{
byte[] v, v;
long v, v, v, v, v;
int v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: long;
v = <io.netty.util.internal.PlatformDependent: long BYTE_ARRAY_BASE_OFFSET>;
v = v + v;
v = <io.netty.util.internal.PlatformDependent: long BYTE_ARRAY_BASE_OFFSET>;
v = v + v;
staticinvoke <io.netty.util.internal.PlatformDependent0: void copyMemory(java.lang.Object,long,java.lang.Object,long,long)>(v, v, v, v, v);
return;
}
public static void copyMemory(long, byte[], int, long)
{
byte[] v;
int v;
long v, v, v, v;
v := @parameter: long;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: long;
v = <io.netty.util.internal.PlatformDependent: long BYTE_ARRAY_BASE_OFFSET>;
v = v + v;
staticinvoke <io.netty.util.internal.PlatformDependent0: void copyMemory(java.lang.Object,long,java.lang.Object,long,long)>(null, v, v, v, v);
return;
}
public static void setMemory(byte[], int, long, byte)
{
byte[] v;
byte v;
int v;
long v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: long;
v := @parameter: byte;
v = <io.netty.util.internal.PlatformDependent: long BYTE_ARRAY_BASE_OFFSET>;
v = v + v;
staticinvoke <io.netty.util.internal.PlatformDependent0: void setMemory(java.lang.Object,long,long,byte)>(v, v, v, v);
return;
}
public static void setMemory(long, long, byte)
{
long v, v;
byte v;
v := @parameter: long;
v := @parameter: long;
v := @parameter: byte;
staticinvoke <io.netty.util.internal.PlatformDependent0: void setMemory(long,long,byte)>(v, v, v);
return;
}
public static java.nio.ByteBuffer allocateDirectNoCleaner(int)
{
java.lang.Throwable v;
int v;
java.lang.AssertionError v;
java.nio.ByteBuffer v;
boolean v, v;
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: boolean $assertionsDisabled>;
if v != 0 goto label;
v = <io.netty.util.internal.PlatformDependent: boolean USE_DIRECT_BUFFER_NO_CLEANER>;
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
staticinvoke <io.netty.util.internal.PlatformDependent: void incrementMemoryCounter(int)>(v);
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.nio.ByteBuffer allocateDirectNoCleaner(int)>(v);
label:
return v;
label:
v := @caughtexception;
staticinvoke <io.netty.util.internal.PlatformDependent: void decrementMemoryCounter(int)>(v);
staticinvoke <io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
return null;
catch java.lang.Throwable from label to label with label;
}
public static java.nio.ByteBuffer reallocateDirectNoCleaner(java.nio.ByteBuffer, int)
{
java.lang.Throwable v;
java.lang.AssertionError v;
java.nio.ByteBuffer v, v;
int v, v, v;
boolean v, v;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: boolean $assertionsDisabled>;
if v != 0 goto label;
v = <io.netty.util.internal.PlatformDependent: boolean USE_DIRECT_BUFFER_NO_CLEANER>;
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
v = v - v;
staticinvoke <io.netty.util.internal.PlatformDependent: void incrementMemoryCounter(int)>(v);
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.nio.ByteBuffer reallocateDirectNoCleaner(java.nio.ByteBuffer,int)>(v, v);
label:
return v;
label:
v := @caughtexception;
staticinvoke <io.netty.util.internal.PlatformDependent: void decrementMemoryCounter(int)>(v);
staticinvoke <io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
return null;
catch java.lang.Throwable from label to label with label;
}
public static void freeDirectNoCleaner(java.nio.ByteBuffer)
{
int v;
long v;
java.lang.AssertionError v;
java.nio.ByteBuffer v;
boolean v, v;
v := @parameter: java.nio.ByteBuffer;
v = <io.netty.util.internal.PlatformDependent: boolean $assertionsDisabled>;
if v != 0 goto label;
v = <io.netty.util.internal.PlatformDependent: boolean USE_DIRECT_BUFFER_NO_CLEANER>;
if v != 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
v = staticinvoke <io.netty.util.internal.PlatformDependent0: long directBufferAddress(java.nio.ByteBuffer)>(v);
staticinvoke <io.netty.util.internal.PlatformDependent0: void freeMemory(long)>(v);
staticinvoke <io.netty.util.internal.PlatformDependent: void decrementMemoryCounter(int)>(v);
return;
}
public static boolean hasAlignDirectByteBuffer()
{
boolean v, v, v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v != 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean hasAlignSliceMethod()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static java.nio.ByteBuffer alignDirectBuffer(java.nio.ByteBuffer, int)
{
java.lang.UnsupportedOperationException v;
long v, v, v;
java.lang.IllegalArgumentException v;
java.nio.ByteBuffer v, v, v;
int v;
boolean v, v, v;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: int;
v = virtualinvoke v.<java.nio.ByteBuffer: boolean isDirect()>();
if v != 0 goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("Cannot get aligned slice of non-direct byte buffer.");
throw v;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean hasAlignSliceMethod()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.nio.ByteBuffer alignSlice(java.nio.ByteBuffer,int)>(v, v);
return v;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent: long directBufferAddress(java.nio.ByteBuffer)>(v);
v = staticinvoke <io.netty.util.internal.PlatformDependent: long align(long,int)>(v, v);
v = v - v;
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer position(int)>(v);
v = virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer slice()>();
return v;
label:
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("Cannot align direct buffer. Needs either Unsafe or ByteBuffer.alignSlice method available.");
throw v;
}
public static long align(long, int)
{
int v;
long v, v;
v := @parameter: long;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.shaded.org.jctools.util.Pow2: long align(long,int)>(v, v);
return v;
}
private static void incrementMemoryCounter(int)
{
long v, v, v, v;
java.util.concurrent.atomic.AtomicLong v, v, v;
byte v;
int v, v;
java.lang.String v;
io.netty.util.internal.OutOfDirectMemoryError v;
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER>;
if v == null goto label;
v = <io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
v = <io.netty.util.internal.PlatformDependent: long DIRECT_MEMORY_LIMIT>;
v = v cmp v;
if v <= 0 goto label;
v = <io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER>;
v = neg v;
virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
v = new io.netty.util.internal.OutOfDirectMemoryError;
v = v - v;
v = <io.netty.util.internal.PlatformDependent: long DIRECT_MEMORY_LIMIT>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,long,long)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("failed to allocate \u byte(s) of direct memory (used: \u, max: \u)");
specialinvoke v.<io.netty.util.internal.OutOfDirectMemoryError: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
private static void decrementMemoryCounter(int)
{
long v;
java.lang.AssertionError v;
java.util.concurrent.atomic.AtomicLong v, v;
byte v;
int v, v;
boolean v;
v := @parameter: int;
v = <io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER>;
if v == null goto label;
v = <io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER>;
v = neg v;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicLong: long addAndGet(long)>(v);
v = <io.netty.util.internal.PlatformDependent: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v cmp 0L;
if v >= 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
return;
}
public static boolean useDirectBufferNoCleaner()
{
boolean v;
v = <io.netty.util.internal.PlatformDependent: boolean USE_DIRECT_BUFFER_NO_CLEANER>;
return v;
}
public static boolean equals(byte[], int, byte[], int, int)
{
byte[] v, v;
int v, v, v;
boolean v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean unalignedAccess()>();
if v != 0 goto label;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean equalsSafe(byte[],int,byte[],int,int)>(v, v, v, v, v);
goto label;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean equals(byte[],int,byte[],int,int)>(v, v, v, v, v);
label:
return v;
}
public static boolean isZero(byte[], int, int)
{
byte[] v;
int v, v;
boolean v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean unalignedAccess()>();
if v != 0 goto label;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isZeroSafe(byte[],int,int)>(v, v, v);
goto label;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean isZero(byte[],int,int)>(v, v, v);
label:
return v;
}
public static int equalsConstantTime(byte[], int, byte[], int, int)
{
byte[] v, v;
int v, v, v, v;
boolean v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean unalignedAccess()>();
if v != 0 goto label;
label:
v = staticinvoke <io.netty.util.internal.ConstantTimeUtils: int equalsConstantTime(byte[],int,byte[],int,int)>(v, v, v, v, v);
goto label;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int equalsConstantTime(byte[],int,byte[],int,int)>(v, v, v, v, v);
label:
return v;
}
public static int hashCodeAscii(byte[], int, int)
{
byte[] v;
int v, v, v;
boolean v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean unalignedAccess()>();
if v != 0 goto label;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiSafe(byte[],int,int)>(v, v, v);
goto label;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAscii(byte[],int,int)>(v, v, v);
label:
return v;
}
public static int hashCodeAscii(java.lang.CharSequence)
{
boolean v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.CharSequence v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
char v;
v := @parameter: java.lang.CharSequence;
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
v = v & 7;
v = -1028477387;
if v < 32 goto label;
v = v - 8;
label:
if v < v goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiCompute(java.lang.CharSequence,int,int)>(v, v, v);
v = v - 8;
goto label;
label:
if v < 8 goto label;
v = v - 8;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiCompute(java.lang.CharSequence,int,int)>(v, v, -1028477387);
if v < 16 goto label;
v = v - 16;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiCompute(java.lang.CharSequence,int,int)>(v, v, v);
if v < 24 goto label;
v = v - 24;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiCompute(java.lang.CharSequence,int,int)>(v, v, v);
label:
if v != 0 goto label;
return v;
label:
v = 0;
if v == 2 goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v == 4 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v & v;
if v == 6 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v & v;
if v == 0 goto label;
v = v * -862048943;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(0);
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiSanitizeByte(char)>(v);
v = v + v;
v = 1;
label:
if v == 1 goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v == 4 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v & v;
if v == 5 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v & v;
if v == 0 goto label;
v = v;
if v != 0 goto label;
v = -862048943;
goto label;
label:
v = 461845907;
label:
v = v * v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiSanitizeShort(java.lang.CharSequence,int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(int)>(v);
v = v + v;
v = v + 2;
label:
if v < 4 goto label;
v = v;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
if v != 3 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v | v;
if v == 0 goto label;
v = -862048943;
goto label;
label:
v = 461845907;
label:
v = v * v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int hashCodeAsciiSanitizeInt(java.lang.CharSequence,int)>(v, v);
v = v + v;
return v;
label:
return v;
}
public static java.util.Queue newMpscQueue()
{
java.util.Queue v;
v = staticinvoke <io.netty.util.internal.PlatformDependent$Mpsc: java.util.Queue newMpscQueue()>();
return v;
}
public static java.util.Queue newMpscQueue(int)
{
int v;
java.util.Queue v;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent$Mpsc: java.util.Queue newMpscQueue(int)>(v);
return v;
}
public static java.util.Queue newMpscQueue(int, int)
{
int v, v;
java.util.Queue v;
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent$Mpsc: java.util.Queue newChunkedMpscQueue(int,int)>(v, v);
return v;
}
public static java.util.Queue newSpscQueue()
{
io.netty.util.internal.shaded.org.jctools.queues.atomic.SpscLinkedAtomicQueue v;
io.netty.util.internal.shaded.org.jctools.queues.SpscLinkedQueue v;
java.util.AbstractQueue v;
boolean v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
v = new io.netty.util.internal.shaded.org.jctools.queues.SpscLinkedQueue;
v = v;
specialinvoke v.<io.netty.util.internal.shaded.org.jctools.queues.SpscLinkedQueue: void <init>()>();
goto label;
label:
v = new io.netty.util.internal.shaded.org.jctools.queues.atomic.SpscLinkedAtomicQueue;
v = v;
specialinvoke v.<io.netty.util.internal.shaded.org.jctools.queues.atomic.SpscLinkedAtomicQueue: void <init>()>();
label:
return v;
}
public static java.util.Queue newFixedMpscQueue(int)
{
io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue v;
int v;
io.netty.util.internal.shaded.org.jctools.queues.atomic.MpscAtomicArrayQueue v;
java.util.AbstractQueue v;
boolean v;
v := @parameter: int;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
v = new io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue;
v = v;
specialinvoke v.<io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue: void <init>(int)>(v);
goto label;
label:
v = new io.netty.util.internal.shaded.org.jctools.queues.atomic.MpscAtomicArrayQueue;
v = v;
specialinvoke v.<io.netty.util.internal.shaded.org.jctools.queues.atomic.MpscAtomicArrayQueue: void <init>(int)>(v);
label:
return v;
}
public static java.lang.ClassLoader getClassLoader(java.lang.Class)
{
java.lang.Class v;
java.lang.ClassLoader v;
v := @parameter: java.lang.Class;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.lang.ClassLoader getClassLoader(java.lang.Class)>(v);
return v;
}
public static java.lang.ClassLoader getContextClassLoader()
{
java.lang.ClassLoader v;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.lang.ClassLoader getContextClassLoader()>();
return v;
}
public static java.lang.ClassLoader getSystemClassLoader()
{
java.lang.ClassLoader v;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.lang.ClassLoader getSystemClassLoader()>();
return v;
}
public static java.util.Deque newConcurrentDeque()
{
int v;
java.util.concurrent.LinkedBlockingDeque v;
java.util.concurrent.ConcurrentLinkedDeque v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v >= 7 goto label;
v = new java.util.concurrent.LinkedBlockingDeque;
specialinvoke v.<java.util.concurrent.LinkedBlockingDeque: void <init>()>();
return v;
label:
v = new java.util.concurrent.ConcurrentLinkedDeque;
specialinvoke v.<java.util.concurrent.ConcurrentLinkedDeque: void <init>()>();
return v;
}
public static java.util.Random threadLocalRandom()
{
io.netty.util.internal.PlatformDependent$ThreadLocalRandomProvider v;
java.util.Random v;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.PlatformDependent$ThreadLocalRandomProvider RANDOM_PROVIDER>;
v = interfaceinvoke v.<io.netty.util.internal.PlatformDependent$ThreadLocalRandomProvider: java.util.Random current()>();
return v;
}
private static boolean isWindows0()
{
io.netty.util.internal.logging.InternalLogger v;
java.lang.String v, v;
boolean v;
v = "windows";
v = <io.netty.util.internal.PlatformDependent: java.lang.String NORMALIZED_OS>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>("Platform: Windows");
label:
return v;
}
private static boolean isOsx0()
{
io.netty.util.internal.logging.InternalLogger v;
java.lang.String v, v;
boolean v;
v = "osx";
v = <io.netty.util.internal.PlatformDependent: java.lang.String NORMALIZED_OS>;
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>("Platform: MacOS");
label:
return v;
}
private static boolean maybeSuperUser0()
{
java.lang.String v, v, v, v;
boolean v, v, v, v, v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String)>("user.name");
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isWindows()>();
if v == 0 goto label;
v = "Administrator";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
return v;
label:
v = "root";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = "toor";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private static java.lang.Throwable unsafeUnavailabilityCause0()
{
java.lang.Throwable v, v, v;
java.lang.UnsupportedOperationException v, v, v;
io.netty.util.internal.logging.InternalLogger v, v, v, v;
java.lang.String v;
boolean v, v, v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isAndroid()>();
if v == 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>("sun.misc.Unsafe: unavailable (Android)");
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("sun.misc.Unsafe: unavailable (Android)");
return v;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isIkvmDotNet()>();
if v == 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String)>("sun.misc.Unsafe: unavailable (IKVM.NET)");
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String)>("sun.misc.Unsafe: unavailable (IKVM.NET)");
return v;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.lang.Throwable getUnsafeUnavailabilityCause()>();
if v == null goto label;
return v;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean hasUnsafe()>();
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
if v == 0 goto label;
v = "available";
goto label;
label:
v = "unavailable";
label:
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("sun.misc.Unsafe: {}", v);
if v == 0 goto label;
v = null;
goto label;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: java.lang.Throwable getUnsafeUnavailabilityCause()>();
label:
return v;
label:
v := @caughtexception;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void trace(java.lang.String,java.lang.Throwable)>("Could not determine if Unsafe is available", v);
v = new java.lang.UnsupportedOperationException;
specialinvoke v.<java.lang.UnsupportedOperationException: void <init>(java.lang.String,java.lang.Throwable)>("Could not determine if Unsafe is available", v);
return v;
catch java.lang.Throwable from label to label with label;
}
public static boolean isJ9Jvm()
{
boolean v;
v = <io.netty.util.internal.PlatformDependent: boolean IS_J9_JVM>;
return v;
}
private static boolean isJ9Jvm0()
{
java.lang.String v, v;
boolean v, v, v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String,java.lang.String)>("java.vm.name", "");
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("ibm j9");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("eclipse openj9");
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public static boolean isIkvmDotNet()
{
boolean v;
v = <io.netty.util.internal.PlatformDependent: boolean IS_IVKVM_DOT_NET>;
return v;
}
private static boolean isIkvmDotNet0()
{
java.util.Locale v;
java.lang.String v, v;
boolean v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String,java.lang.String)>("java.vm.name", "");
v = <java.util.Locale: java.util.Locale US>;
v = virtualinvoke v.<java.lang.String: java.lang.String toUpperCase(java.util.Locale)>(v);
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>("IKVM.NET");
return v;
}
public static long estimateMaxDirectMemory()
{
java.util.regex.Matcher v;
byte v, v;
java.lang.Long v, v;
java.lang.reflect.Method v, v, v;
boolean v, v, v;
java.lang.Runtime v;
io.netty.util.internal.logging.InternalLogger v, v;
java.lang.ClassLoader v;
java.util.regex.Pattern v;
java.lang.Throwable v, v;
java.lang.Object[] v, v, v;
long v;
int v, v;
java.lang.String v, v, v, v;
java.lang.Class[] v, v, v;
char v;
java.lang.Class v, v, v;
java.lang.Object v, v, v, v;
v = 0L;
v = null;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.lang.ClassLoader getSystemClassLoader()>();
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String,java.lang.String)>("java.vm.name", "");
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase()>();
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("ibm j9");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("eclipse openj9");
if v != 0 goto label;
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>("sun.misc.VM", 1, v);
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getDeclaredMethod(java.lang.String,java.lang.Class[])>("maxDirectMemory", v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(null, v);
v = virtualinvoke v.<java.lang.Number: long longValue()>();
label:
goto label;
label:
v := @caughtexception;
label:
v = v cmp 0L;
if v <= 0 goto label;
return v;
label:
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>("java.lang.management.ManagementFactory", 1, v);
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String,boolean,java.lang.ClassLoader)>("java.lang.management.RuntimeMXBean", 1, v);
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getDeclaredMethod(java.lang.String,java.lang.Class[])>("getRuntimeMXBean", v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(null, v);
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getDeclaredMethod(java.lang.String,java.lang.Class[])>("getInputArguments", v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Method: java.lang.Object invoke(java.lang.Object,java.lang.Object[])>(v, v);
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
label:
if v < 0 goto label;
v = <io.netty.util.internal.PlatformDependent: java.util.regex.Pattern MAX_DIRECT_MEMORY_SIZE_ARG_PATTERN>;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean matches()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String group(int)>(1);
v = staticinvoke <java.lang.Long: long parseLong(java.lang.String)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String group(int)>(2);
v = virtualinvoke v.<java.lang.String: char charAt(int)>(0);
lookupswitch(v)
{
case 71: goto label;
case 75: goto label;
case 77: goto label;
case 103: goto label;
case 107: goto label;
case 109: goto label;
default: goto label;
};
label:
v = v * 1024L;
goto label;
label:
v = v * 1048576L;
goto label;
label:
v = v * 1073741824L;
goto label;
label:
v = v - 1;
goto label;
label:
v := @caughtexception;
label:
v = v cmp 0L;
if v > 0 goto label;
v = staticinvoke <java.lang.Runtime: java.lang.Runtime getRuntime()>();
v = virtualinvoke v.<java.lang.Runtime: long maxMemory()>();
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("maxDirectMemory: {} bytes (maybe)", v);
goto label;
label:
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("maxDirectMemory: {} bytes", v);
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static java.io.File tmpdir0()
{
java.lang.Throwable v;
java.lang.String v, v, v, v, v, v, v;
boolean v, v;
java.io.File v, v, v, v, v, v, v, v, v;
io.netty.util.internal.logging.InternalLogger v, v, v, v, v, v, v;
label:
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String)>("io.netty.tmpdir");
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.io.File toDirectory(java.lang.String)>(v);
if v == null goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.tmpdir: {}", v);
label:
return v;
label:
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String)>("java.io.tmpdir");
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.io.File toDirectory(java.lang.String)>(v);
if v == null goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.tmpdir: {} (java.io.tmpdir)", v);
label:
return v;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isWindows()>();
if v == 0 goto label;
v = staticinvoke <java.lang.System: java.lang.String getenv(java.lang.String)>("TEMP");
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.io.File toDirectory(java.lang.String)>(v);
if v == null goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.tmpdir: {} (%TEMP%)", v);
label:
return v;
label:
v = staticinvoke <java.lang.System: java.lang.String getenv(java.lang.String)>("USERPROFILE");
if v == null goto label;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\\AppData\\Local\\Temp");
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.io.File toDirectory(java.lang.String)>(v);
if v == null goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.tmpdir: {} (%USERPROFILE%\\AppData\\Local\\Temp)", v);
label:
return v;
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\\Local Settings\\Temp");
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.io.File toDirectory(java.lang.String)>(v);
if v == null goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.tmpdir: {} (%USERPROFILE%\\Local Settings\\Temp)", v);
label:
return v;
label:
v = staticinvoke <java.lang.System: java.lang.String getenv(java.lang.String)>("TMPDIR");
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.io.File toDirectory(java.lang.String)>(v);
if v == null goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.tmpdir: {} ($TMPDIR)", v);
label:
return v;
label:
v := @caughtexception;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isWindows()>();
if v == 0 goto label;
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>("C:\\Windows\\Temp");
v = v;
goto label;
label:
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>("/tmp");
v = v;
label:
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void warn(java.lang.String,java.lang.Object)>("Failed to get the temporary directory; falling back to: {}", v);
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
private static java.io.File toDirectory(java.lang.String)
{
java.lang.String v;
java.io.File v, v;
java.lang.Exception v;
boolean v;
v := @parameter: java.lang.String;
if v != null goto label;
return null;
label:
v = new java.io.File;
specialinvoke v.<java.io.File: void <init>(java.lang.String)>(v);
virtualinvoke v.<java.io.File: boolean mkdirs()>();
v = virtualinvoke v.<java.io.File: boolean isDirectory()>();
if v != 0 goto label;
return null;
label:
v = virtualinvoke v.<java.io.File: java.io.File getAbsoluteFile()>();
label:
return v;
label:
v := @caughtexception;
return v;
catch java.lang.Exception from label to label with label;
}
private static int bitMode0()
{
java.lang.Integer v, v, v, v;
java.util.regex.Matcher v;
java.util.Locale v, v;
boolean v, v, v, v, v, v, v;
io.netty.util.internal.logging.InternalLogger v, v, v, v;
java.util.regex.Pattern v;
int v, v, v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: int getInt(java.lang.String,int)>("io.netty.bitMode", 0);
if v <= 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.bitMode: {}", v);
return v;
label:
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: int getInt(java.lang.String,int)>("sun.arch.data.model", 0);
if v <= 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.bitMode: {} (sun.arch.data.model)", v);
return v;
label:
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: int getInt(java.lang.String,int)>("com.ibm.vm.bitmode", 0);
if v <= 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.bitMode: {} (com.ibm.vm.bitmode)", v);
return v;
label:
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String,java.lang.String)>("os.arch", "");
v = <java.util.Locale: java.util.Locale US>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = "amd64";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = "x86_64";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 64;
goto label;
label:
v = "i386";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = "i486";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = "i586";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = "i686";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
label:
v = 32;
label:
if v <= 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("-Dio.netty.bitMode: {} (os.arch: {})", v, v);
label:
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String,java.lang.String)>("java.vm.name", "");
v = <java.util.Locale: java.util.Locale US>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("([1-9][0-9]+)-?bit");
v = virtualinvoke v.<java.util.regex.Pattern: java.util.regex.Matcher matcher(java.lang.CharSequence)>(v);
v = virtualinvoke v.<java.util.regex.Matcher: boolean find()>();
if v == 0 goto label;
v = virtualinvoke v.<java.util.regex.Matcher: java.lang.String group(int)>(1);
v = staticinvoke <java.lang.Integer: int parseInt(java.lang.String)>(v);
return v;
label:
return 64;
}
private static int addressSize0()
{
int v, v;
boolean v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v != 0 goto label;
v = (int) -1;
return v;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int addressSize()>();
return v;
}
private static long byteArrayBaseOffset0()
{
long v;
boolean v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v != 0 goto label;
return -1L;
label:
v = staticinvoke <io.netty.util.internal.PlatformDependent0: long byteArrayBaseOffset()>();
return v;
}
private static boolean equalsSafe(byte[], int, byte[], int, int)
{
byte[] v, v;
byte v, v;
int v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v + v;
label:
if v >= v goto label;
v = v[v];
v = v[v];
if v == v goto label;
return 0;
label:
v = v + 1;
v = v + 1;
goto label;
label:
return 1;
}
private static boolean isZeroSafe(byte[], int, int)
{
byte[] v;
byte v;
int v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = v + v;
label:
if v >= v goto label;
v = v[v];
if v == 0 goto label;
return 0;
label:
v = v + 1;
goto label;
label:
return 1;
}
static int hashCodeAsciiSafe(byte[], int, int)
{
byte[] v;
byte v, v, v, v;
long v;
short v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = -1028477387;
v = v & 7;
v = v + v;
v = v - 8;
v = v + v;
label:
if v < v goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent: long getLongSafe(byte[],int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiCompute(long,int)>(v, v);
v = v - 8;
goto label;
label:
tableswitch(v)
{
case 1: goto label;
case 2: goto label;
case 3: goto label;
case 4: goto label;
case 5: goto label;
case 6: goto label;
case 7: goto label;
default: goto label;
};
label:
v = v * -862048943;
v = v[v];
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(byte)>(v);
v = v + v;
v = v * 461845907;
v = v + 1;
v = staticinvoke <io.netty.util.internal.PlatformDependent: short getShortSafe(byte[],int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(short)>(v);
v = v + v;
v = v * -862048943;
v = v + 3;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int getIntSafe(byte[],int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(int)>(v);
v = v + v;
return v;
label:
v = v * -862048943;
v = staticinvoke <io.netty.util.internal.PlatformDependent: short getShortSafe(byte[],int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(short)>(v);
v = v + v;
v = v * 461845907;
v = v + 2;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int getIntSafe(byte[],int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(int)>(v);
v = v + v;
return v;
label:
v = v * -862048943;
v = v[v];
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(byte)>(v);
v = v + v;
v = v * 461845907;
v = v + 1;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int getIntSafe(byte[],int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(int)>(v);
v = v + v;
return v;
label:
v = v * -862048943;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int getIntSafe(byte[],int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(int)>(v);
v = v + v;
return v;
label:
v = v * -862048943;
v = v[v];
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(byte)>(v);
v = v + v;
v = v * 461845907;
v = v + 1;
v = staticinvoke <io.netty.util.internal.PlatformDependent: short getShortSafe(byte[],int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(short)>(v);
v = v + v;
return v;
label:
v = v * -862048943;
v = staticinvoke <io.netty.util.internal.PlatformDependent: short getShortSafe(byte[],int)>(v, v);
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(short)>(v);
v = v + v;
return v;
label:
v = v * -862048943;
v = v[v];
v = staticinvoke <io.netty.util.internal.PlatformDependent0: int hashCodeAsciiSanitize(byte)>(v);
v = v + v;
return v;
label:
return v;
}
public static java.lang.String normalizedArch()
{
java.lang.String v;
v = <io.netty.util.internal.PlatformDependent: java.lang.String NORMALIZED_ARCH>;
return v;
}
public static java.lang.String normalizedOs()
{
java.lang.String v;
v = <io.netty.util.internal.PlatformDependent: java.lang.String NORMALIZED_OS>;
return v;
}
public static java.util.Set normalizedLinuxClassifiers()
{
java.util.Set v;
v = <io.netty.util.internal.PlatformDependent: java.util.Set LINUX_OS_CLASSIFIERS>;
return v;
}
public static java.io.File createTempFile(java.lang.String, java.lang.String, java.io.File) throws java.io.IOException
{
java.nio.file.attribute.FileAttribute[] v, v;
int v;
java.lang.String v, v, v, v;
java.nio.file.Path v, v, v;
boolean v, v;
java.io.IOException v, v;
java.io.File v, v, v, v;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v := @parameter: java.io.File;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
if v != null goto label;
v = newarray (java.nio.file.attribute.FileAttribute)[0];
v = staticinvoke <java.nio.file.Files: java.nio.file.Path createTempFile(java.lang.String,java.lang.String,java.nio.file.attribute.FileAttribute[])>(v, v, v);
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
return v;
label:
v = virtualinvoke v.<java.io.File: java.nio.file.Path toPath()>();
v = newarray (java.nio.file.attribute.FileAttribute)[0];
v = staticinvoke <java.nio.file.Files: java.nio.file.Path createTempFile(java.nio.file.Path,java.lang.String,java.lang.String,java.nio.file.attribute.FileAttribute[])>(v, v, v, v);
v = interfaceinvoke v.<java.nio.file.Path: java.io.File toFile()>();
return v;
label:
if v != null goto label;
v = staticinvoke <java.io.File: java.io.File createTempFile(java.lang.String,java.lang.String)>(v, v);
goto label;
label:
v = staticinvoke <java.io.File: java.io.File createTempFile(java.lang.String,java.lang.String,java.io.File)>(v, v, v);
label:
v = virtualinvoke v.<java.io.File: boolean setReadable(boolean,boolean)>(0, 0);
if v != 0 goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to set permissions on temporary file \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
v = virtualinvoke v.<java.io.File: boolean setReadable(boolean,boolean)>(1, 1);
if v != 0 goto label;
v = new java.io.IOException;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.io.File)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Failed to set permissions on temporary file \u0001");
specialinvoke v.<java.io.IOException: void <init>(java.lang.String)>(v);
throw v;
label:
return v;
}
private static transient void addClassifier(java.util.Set, java.util.Set, java.lang.String[])
{
int v, v;
java.util.Set v, v;
java.lang.String[] v;
java.lang.String v;
boolean v;
v := @parameter: java.util.Set;
v := @parameter: java.util.Set;
v := @parameter: java.lang.String[];
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
interfaceinvoke v.<java.util.Set: boolean add(java.lang.Object)>(v);
label:
v = v + 1;
goto label;
label:
return;
}
private static java.lang.String normalizeOsReleaseVariableValue(java.lang.String)
{
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>("[\"\']", "");
return v;
}
private static java.lang.String normalize(java.lang.String)
{
java.util.Locale v;
java.lang.String v, v, v;
v := @parameter: java.lang.String;
v = <java.util.Locale: java.util.Locale US>;
v = virtualinvoke v.<java.lang.String: java.lang.String toLowerCase(java.util.Locale)>(v);
v = virtualinvoke v.<java.lang.String: java.lang.String replaceAll(java.lang.String,java.lang.String)>("[^a-z0-9]+", "");
return v;
}
private static java.lang.String normalizeArch(java.lang.String)
{
java.lang.String v, v, v, v, v, v, v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: java.lang.String;
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.lang.String normalize(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>("^(x8664|amd64|ia32e|em64t|x)$");
if v == 0 goto label;
return "x86_64";
label:
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>("^(x8632|x86|i[3-6]86|ia32|x)$");
if v == 0 goto label;
return "x86_32";
label:
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>("^(ia64|itanium)$");
if v == 0 goto label;
return "itanium_64";
label:
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>("^(sparc|sparc)$");
if v == 0 goto label;
return "sparc_32";
label:
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>("^(sparcv9|sparc)$");
if v == 0 goto label;
return "sparc_64";
label:
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>("^(arm|arm)$");
if v == 0 goto label;
return "arm_32";
label:
v = "aarch64";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return "aarch_64";
label:
v = virtualinvoke v.<java.lang.String: boolean matches(java.lang.String)>("^(ppc|ppc)$");
if v == 0 goto label;
return "ppc_32";
label:
v = "ppc64";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return "ppc_64";
label:
v = "ppc64le";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return "ppcle_64";
label:
v = "s390";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return "s390_32";
label:
v = "s390x";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return "s390_64";
label:
v = "loongarch64";
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
return "loongarch_64";
label:
return "unknown";
}
private static java.lang.String normalizeOs(java.lang.String)
{
int v;
java.lang.String v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v;
char v;
v := @parameter: java.lang.String;
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.lang.String normalize(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("aix");
if v == 0 goto label;
return "aix";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("hpux");
if v == 0 goto label;
return "hpux";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("os400");
if v == 0 goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v <= 5 goto label;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(5);
v = staticinvoke <java.lang.Character: boolean isDigit(char)>(v);
if v != 0 goto label;
label:
return "os400";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("linux");
if v == 0 goto label;
return "linux";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("macosx");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("osx");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("darwin");
if v == 0 goto label;
label:
return "osx";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("freebsd");
if v == 0 goto label;
return "freebsd";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("openbsd");
if v == 0 goto label;
return "openbsd";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("netbsd");
if v == 0 goto label;
return "netbsd";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("solaris");
if v != 0 goto label;
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("sunos");
if v == 0 goto label;
label:
return "sunos";
label:
v = virtualinvoke v.<java.lang.String: boolean startsWith(java.lang.String)>("windows");
if v == 0 goto label;
return "windows";
label:
return "unknown";
}
private void <init>()
{
io.netty.util.internal.PlatformDependent v;
v := @this: io.netty.util.internal.PlatformDependent;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
static void <clinit>()
{
io.netty.util.internal.Cleaner v, v, v, v, v, v, v;
java.lang.Integer v;
byte v, v, v, v;
java.lang.Long v;
io.netty.util.internal.CleanerJava v;
java.util.Set v, v;
io.netty.util.internal.CleanerJava v;
java.nio.ByteOrder v, v;
io.netty.util.internal.logging.InternalLogger v, v, v, v, v, v;
io.netty.util.internal.PlatformDependent$1 v;
java.lang.Throwable v;
io.netty.util.internal.PlatformDependent$2 v;
io.netty.util.internal.PlatformDependent$3 v;
long v, v, v, v;
java.lang.String v, v, v, v;
java.util.LinkedHashSet v;
java.io.File v;
java.util.concurrent.atomic.AtomicLong v, v;
boolean v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.List v;
java.util.regex.Pattern v;
java.lang.String[] v, v, v;
java.util.HashSet v;
int v, v, v, v, v, v, v, v, v;
java.lang.Boolean v;
java.lang.Class v;
v = class "Lio/netty/util/internal/PlatformDependent;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.util.internal.PlatformDependent: boolean $assertionsDisabled> = v;
v = staticinvoke <io.netty.util.internal.logging.InternalLoggerFactory: io.netty.util.internal.logging.InternalLogger getInstance(java.lang.Class)>(class "Lio/netty/util/internal/PlatformDependent;");
<io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger> = v;
v = staticinvoke <java.util.regex.Pattern: java.util.regex.Pattern compile(java.lang.String)>("\\s*-XX:MaxDirectMemorySize\\s*=\\s*([0-9]+)\\s*([kKmMgG]?)\\s*$");
<io.netty.util.internal.PlatformDependent: java.util.regex.Pattern MAX_DIRECT_MEMORY_SIZE_ARG_PATTERN> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isAndroid()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.util.internal.PlatformDependent: boolean CAN_ENABLE_TCP_NODELAY_BY_DEFAULT> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.lang.Throwable unsafeUnavailabilityCause0()>();
<io.netty.util.internal.PlatformDependent: java.lang.Throwable UNSAFE_UNAVAILABILITY_CAUSE> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: long estimateMaxDirectMemory()>();
<io.netty.util.internal.PlatformDependent: long MAX_DIRECT_MEMORY> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: long byteArrayBaseOffset0()>();
<io.netty.util.internal.PlatformDependent: long BYTE_ARRAY_BASE_OFFSET> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.io.File tmpdir0()>();
<io.netty.util.internal.PlatformDependent: java.io.File TMPDIR> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int bitMode0()>();
<io.netty.util.internal.PlatformDependent: int BIT_MODE> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String,java.lang.String)>("os.arch", "");
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.lang.String normalizeArch(java.lang.String)>(v);
<io.netty.util.internal.PlatformDependent: java.lang.String NORMALIZED_ARCH> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: java.lang.String get(java.lang.String,java.lang.String)>("os.name", "");
v = staticinvoke <io.netty.util.internal.PlatformDependent: java.lang.String normalizeOs(java.lang.String)>(v);
<io.netty.util.internal.PlatformDependent: java.lang.String NORMALIZED_OS> = v;
v = newarray (java.lang.String)[3];
v[0] = "fedora";
v[1] = "suse";
v[2] = "arch";
<io.netty.util.internal.PlatformDependent: java.lang.String[] ALLOWED_LINUX_OS_CLASSIFIERS> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isWindows0()>();
<io.netty.util.internal.PlatformDependent: boolean IS_WINDOWS> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isOsx0()>();
<io.netty.util.internal.PlatformDependent: boolean IS_OSX> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isJ9Jvm0()>();
<io.netty.util.internal.PlatformDependent: boolean IS_J9_JVM> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isIkvmDotNet0()>();
<io.netty.util.internal.PlatformDependent: boolean IS_IVKVM_DOT_NET> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int addressSize0()>();
<io.netty.util.internal.PlatformDependent: int ADDRESS_SIZE> = v;
v = newarray (java.lang.String)[2];
v[0] = "/etc/os-release";
v[1] = "/usr/lib/os-release";
<io.netty.util.internal.PlatformDependent: java.lang.String[] OS_RELEASE_FILES> = v;
v = staticinvoke <java.nio.ByteOrder: java.nio.ByteOrder nativeOrder()>();
v = <java.nio.ByteOrder: java.nio.ByteOrder BIG_ENDIAN>;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.util.internal.PlatformDependent: boolean BIG_ENDIAN_NATIVE_ORDER> = v;
v = new io.netty.util.internal.PlatformDependent$1;
specialinvoke v.<io.netty.util.internal.PlatformDependent$1: void <init>()>();
<io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner NOOP> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 7 goto label;
v = new io.netty.util.internal.PlatformDependent$2;
specialinvoke v.<io.netty.util.internal.PlatformDependent$2: void <init>()>();
<io.netty.util.internal.PlatformDependent: io.netty.util.internal.PlatformDependent$ThreadLocalRandomProvider RANDOM_PROVIDER> = v;
goto label;
label:
v = new io.netty.util.internal.PlatformDependent$3;
specialinvoke v.<io.netty.util.internal.PlatformDependent$3: void <init>()>();
<io.netty.util.internal.PlatformDependent: io.netty.util.internal.PlatformDependent$ThreadLocalRandomProvider RANDOM_PROVIDER> = v;
label:
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: long getLong(java.lang.String,long)>("io.netty.maxDirectMemory", -1L);
v = v cmp 0L;
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean hasUnsafe()>();
if v == 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean hasDirectBufferNoCleanerConstructor()>();
if v != 0 goto label;
label:
<io.netty.util.internal.PlatformDependent: boolean USE_DIRECT_BUFFER_NO_CLEANER> = 0;
<io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER> = null;
goto label;
label:
<io.netty.util.internal.PlatformDependent: boolean USE_DIRECT_BUFFER_NO_CLEANER> = 1;
v = v cmp 0L;
if v >= 0 goto label;
v = <io.netty.util.internal.PlatformDependent: long MAX_DIRECT_MEMORY>;
v = v cmp 0L;
if v > 0 goto label;
<io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER> = null;
goto label;
label:
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
<io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER> = v;
goto label;
label:
v = new java.util.concurrent.atomic.AtomicLong;
specialinvoke v.<java.util.concurrent.atomic.AtomicLong: void <init>()>();
<io.netty.util.internal.PlatformDependent: java.util.concurrent.atomic.AtomicLong DIRECT_MEMORY_COUNTER> = v;
label:
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.maxDirectMemory: {} bytes", v);
v = v cmp 1L;
if v < 0 goto label;
v = v;
goto label;
label:
v = <io.netty.util.internal.PlatformDependent: long MAX_DIRECT_MEMORY>;
label:
<io.netty.util.internal.PlatformDependent: long DIRECT_MEMORY_LIMIT> = v;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: int getInt(java.lang.String,int)>("io.netty.uninitializedArrayAllocationThreshold", 1024);
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 9 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean hasAllocateArrayMethod()>();
if v == 0 goto label;
v = v;
goto label;
label:
v = (int) -1;
v = v;
label:
<io.netty.util.internal.PlatformDependent: int UNINITIALIZED_ARRAY_ALLOCATION_THRESHOLD> = v;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = <io.netty.util.internal.PlatformDependent: int UNINITIALIZED_ARRAY_ALLOCATION_THRESHOLD>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.uninitializedArrayAllocationThreshold: {}", v);
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean maybeSuperUser0()>();
<io.netty.util.internal.PlatformDependent: boolean MAYBE_SUPER_USER> = v;
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean isAndroid()>();
if v != 0 goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent: int javaVersion()>();
if v < 9 goto label;
v = staticinvoke <io.netty.util.internal.CleanerJava9: boolean isSupported()>();
if v == 0 goto label;
v = new io.netty.util.internal.CleanerJava;
v = v;
specialinvoke v.<io.netty.util.internal.CleanerJava9: void <init>()>();
goto label;
label:
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner NOOP>;
label:
<io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner CLEANER> = v;
goto label;
label:
v = staticinvoke <io.netty.util.internal.CleanerJava6: boolean isSupported()>();
if v == 0 goto label;
v = new io.netty.util.internal.CleanerJava;
v = v;
specialinvoke v.<io.netty.util.internal.CleanerJava6: void <init>()>();
goto label;
label:
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner NOOP>;
label:
<io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner CLEANER> = v;
goto label;
label:
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner NOOP>;
<io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner CLEANER> = v;
label:
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner CLEANER>;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner NOOP>;
if v == v goto label;
v = staticinvoke <io.netty.util.internal.SystemPropertyUtil: boolean getBoolean(java.lang.String,boolean)>("io.netty.noPreferDirect", 0);
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.util.internal.PlatformDependent: boolean DIRECT_BUFFER_PREFERRED> = v;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: boolean isDebugEnabled()>();
if v == 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
v = <io.netty.util.internal.PlatformDependent: boolean DIRECT_BUFFER_PREFERRED>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(v);
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void debug(java.lang.String,java.lang.Object)>("-Dio.netty.noPreferDirect: {}", v);
label:
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner CLEANER>;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.Cleaner NOOP>;
if v != v goto label;
v = staticinvoke <io.netty.util.internal.PlatformDependent0: boolean isExplicitNoUnsafe()>();
if v != 0 goto label;
v = <io.netty.util.internal.PlatformDependent: io.netty.util.internal.logging.InternalLogger logger>;
interfaceinvoke v.<io.netty.util.internal.logging.InternalLogger: void info(java.lang.String)>("Your platform does not provide complete low-level API for accessing direct buffers reliably. Unless explicitly requested, heap buffer will always be preferred to avoid potential system instability.");
label:
v = new java.util.HashSet;
v = <io.netty.util.internal.PlatformDependent: java.lang.String[] ALLOWED_LINUX_OS_CLASSIFIERS>;
v = staticinvoke <java.util.Arrays: java.util.List asList(java.lang.Object[])>(v);
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
v = new java.util.LinkedHashSet;
specialinvoke v.<java.util.LinkedHashSet: void <init>()>();
v = staticinvoke <io.netty.util.internal.PlatformDependent: boolean addPropertyOsClassifiers(java.util.Set,java.util.Set)>(v, v);
if v != 0 goto label;
staticinvoke <io.netty.util.internal.PlatformDependent: void addFilesystemOsClassifiers(java.util.Set,java.util.Set)>(v, v);
label:
v = staticinvoke <java.util.Collections: java.util.Set unmodifiableSet(java.util.Set)>(v);
<io.netty.util.internal.PlatformDependent: java.util.Set LINUX_OS_CLASSIFIERS> = v;
return;
}
}