public class org.glassfish.grizzly.memory.ByteBufferManager extends org.glassfish.grizzly.memory.AbstractMemoryManager implements org.glassfish.grizzly.memory.WrapperAware, org.glassfish.grizzly.memory.ByteBufferAware
{
public static final int DEFAULT_SMALL_BUFFER_SIZE;
private static final org.glassfish.grizzly.ThreadCache$CachedTypeIndex CACHE_IDX;
private final org.glassfish.grizzly.ThreadCache$CachedTypeIndex SMALL_BUFFER_CACHE_IDX;
protected boolean isDirect;
protected final int maxSmallBufferSize;
public void <init>()
{
org.glassfish.grizzly.memory.ByteBufferManager v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
specialinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: void <init>(boolean,int,int)>(0, 65536, 32);
return;
}
public void <init>(boolean)
{
org.glassfish.grizzly.memory.ByteBufferManager v;
boolean v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: boolean;
specialinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: void <init>(boolean,int,int)>(v, 65536, 32);
return;
}
public void <init>(boolean, int, int)
{
org.glassfish.grizzly.memory.ByteBufferManager v;
org.glassfish.grizzly.ThreadCache$CachedTypeIndex v;
java.lang.Integer v;
int v, v, v, v;
java.lang.Class v, v;
java.lang.String v, v, v, v;
boolean v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: boolean;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<org.glassfish.grizzly.memory.AbstractMemoryManager: void <init>(int)>(v);
v = class "Lorg/glassfish/grizzly/memory/ByteBufferManager$SmallByteBufferWrapper;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <java.lang.System: int identityHashCode(java.lang.Object)>(v);
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(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[])>("\u.\u0001");
v = class "Lorg/glassfish/grizzly/memory/ByteBufferManager;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("\u.sbbw-cache-size");
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>(v, 16);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = staticinvoke <org.glassfish.grizzly.ThreadCache: org.glassfish.grizzly.ThreadCache$CachedTypeIndex obtainIndex(java.lang.String,java.lang.Class,int)>(v, class "Lorg/glassfish/grizzly/memory/ByteBufferManager$SmallByteBufferWrapper;", v);
v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.ThreadCache$CachedTypeIndex SMALL_BUFFER_CACHE_IDX> = v;
v.<org.glassfish.grizzly.memory.ByteBufferManager: int maxSmallBufferSize> = v;
v.<org.glassfish.grizzly.memory.ByteBufferManager: boolean isDirect> = v;
return;
}
public int getMaxSmallBufferSize()
{
int v;
org.glassfish.grizzly.memory.ByteBufferManager v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: int maxSmallBufferSize>;
return v;
}
public org.glassfish.grizzly.memory.ByteBufferWrapper allocate(int)
{
org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper v;
org.glassfish.grizzly.memory.ByteBufferManager v;
int v, v;
java.nio.ByteBuffer v;
org.glassfish.grizzly.memory.ByteBufferWrapper v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: int;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: int maxSmallBufferSize>;
if v > v goto label;
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper createSmallBuffer()>();
virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper: org.glassfish.grizzly.memory.ByteBufferWrapper limit(int)>(v);
return v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer allocateByteBuffer(int)>(v);
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferWrapper wrap(java.nio.ByteBuffer)>(v);
return v;
}
public org.glassfish.grizzly.memory.ByteBufferWrapper allocateAtLeast(int)
{
org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper v;
org.glassfish.grizzly.memory.ByteBufferManager v;
int v, v;
java.nio.ByteBuffer v;
org.glassfish.grizzly.memory.ByteBufferWrapper v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: int;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: int maxSmallBufferSize>;
if v > v goto label;
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper createSmallBuffer()>();
virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper: org.glassfish.grizzly.memory.ByteBufferWrapper limit(int)>(v);
return v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer allocateByteBufferAtLeast(int)>(v);
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferWrapper wrap(java.nio.ByteBuffer)>(v);
return v;
}
public org.glassfish.grizzly.memory.ByteBufferWrapper reallocate(org.glassfish.grizzly.memory.ByteBufferWrapper, int)
{
org.glassfish.grizzly.memory.ByteBufferManager v;
int v;
java.nio.ByteBuffer v, v;
org.glassfish.grizzly.memory.ByteBufferWrapper v, v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: org.glassfish.grizzly.memory.ByteBufferWrapper;
v := @parameter: int;
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferWrapper: java.nio.ByteBuffer underlying()>();
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer reallocateByteBuffer(java.nio.ByteBuffer,int)>(v, v);
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferWrapper wrap(java.nio.ByteBuffer)>(v);
return v;
}
public void release(org.glassfish.grizzly.memory.ByteBufferWrapper)
{
org.glassfish.grizzly.memory.ByteBufferManager v;
java.nio.ByteBuffer v;
org.glassfish.grizzly.memory.ByteBufferWrapper v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: org.glassfish.grizzly.memory.ByteBufferWrapper;
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferWrapper: java.nio.ByteBuffer underlying()>();
virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: void releaseByteBuffer(java.nio.ByteBuffer)>(v);
return;
}
public boolean isDirect()
{
org.glassfish.grizzly.memory.ByteBufferManager v;
boolean v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: boolean isDirect>;
return v;
}
public void setDirect(boolean)
{
org.glassfish.grizzly.memory.ByteBufferManager v;
boolean v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: boolean;
v.<org.glassfish.grizzly.memory.ByteBufferManager: boolean isDirect> = v;
return;
}
public boolean willAllocateDirect(int)
{
int v;
org.glassfish.grizzly.memory.ByteBufferManager v;
boolean v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: int;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: boolean isDirect>;
return v;
}
public org.glassfish.grizzly.memory.ByteBufferWrapper wrap(byte[])
{
byte[] v;
org.glassfish.grizzly.memory.ByteBufferManager v;
int v;
org.glassfish.grizzly.memory.ByteBufferWrapper v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: byte[];
v = lengthof v;
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferWrapper wrap(byte[],int,int)>(v, 0, v);
return v;
}
public org.glassfish.grizzly.memory.ByteBufferWrapper wrap(byte[], int, int)
{
byte[] v;
org.glassfish.grizzly.memory.ByteBufferManager v;
int v, v;
java.nio.ByteBuffer v;
org.glassfish.grizzly.memory.ByteBufferWrapper v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[],int,int)>(v, v, v);
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferWrapper wrap(java.nio.ByteBuffer)>(v);
return v;
}
public org.glassfish.grizzly.memory.ByteBufferWrapper wrap(java.lang.String)
{
java.nio.charset.Charset v;
org.glassfish.grizzly.memory.ByteBufferManager v;
java.lang.String v;
org.glassfish.grizzly.memory.ByteBufferWrapper v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: java.lang.String;
v = staticinvoke <java.nio.charset.Charset: java.nio.charset.Charset defaultCharset()>();
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferWrapper wrap(java.lang.String,java.nio.charset.Charset)>(v, v);
return v;
}
public org.glassfish.grizzly.memory.ByteBufferWrapper wrap(java.lang.String, java.nio.charset.Charset)
{
byte[] v;
java.lang.IllegalStateException v;
org.glassfish.grizzly.memory.ByteBufferManager v;
java.nio.ByteBuffer v;
org.glassfish.grizzly.memory.ByteBufferWrapper v;
java.nio.charset.Charset v;
java.lang.String v, v;
java.io.UnsupportedEncodingException v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: java.lang.String;
v := @parameter: java.nio.charset.Charset;
label:
v = virtualinvoke v.<java.nio.charset.Charset: java.lang.String name()>();
v = virtualinvoke v.<java.lang.String: byte[] getBytes(java.lang.String)>(v);
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer wrap(byte[])>(v);
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferWrapper wrap(java.nio.ByteBuffer)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.Throwable)>(v);
throw v;
catch java.io.UnsupportedEncodingException from label to label with label;
}
public org.glassfish.grizzly.memory.ThreadLocalPool createThreadLocalPool()
{
org.glassfish.grizzly.memory.ByteBufferManager v;
org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v = new org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool;
specialinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool: void <init>()>();
return v;
}
public org.glassfish.grizzly.memory.ByteBufferWrapper wrap(java.nio.ByteBuffer)
{
org.glassfish.grizzly.memory.ByteBufferManager$TrimAwareWrapper v;
org.glassfish.grizzly.memory.ByteBufferManager v;
java.nio.ByteBuffer v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: java.nio.ByteBuffer;
v = specialinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferManager$TrimAwareWrapper createTrimAwareBuffer(java.nio.ByteBuffer)>(v);
return v;
}
public java.nio.ByteBuffer allocateByteBuffer(int)
{
org.glassfish.grizzly.memory.ByteBufferManager v;
org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool v;
java.nio.ByteBuffer v, v;
int v, v, v;
java.lang.Object v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: int;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: int maxBufferSize>;
if v <= v goto label;
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer allocateByteBuffer0(int)>(v);
return v;
label:
v = staticinvoke <org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool getByteBufferThreadLocalPool()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.memory.ThreadLocalPool: int remaining()>();
if v == 0 goto label;
if v >= v goto label;
label:
specialinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: void reallocatePoolBuffer()>();
label:
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.lang.Object allocateFromPool(org.glassfish.grizzly.memory.ThreadLocalPool,int)>(v, v);
return v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer allocateByteBuffer0(int)>(v);
return v;
}
public java.nio.ByteBuffer allocateByteBufferAtLeast(int)
{
org.glassfish.grizzly.memory.ByteBufferManager v;
org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool v;
java.nio.ByteBuffer v, v;
int v, v, v;
java.lang.Object v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: int;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: int maxBufferSize>;
if v <= v goto label;
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer allocateByteBuffer0(int)>(v);
return v;
label:
v = staticinvoke <org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool getByteBufferThreadLocalPool()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.memory.ThreadLocalPool: int remaining()>();
if v == 0 goto label;
if v >= v goto label;
label:
specialinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: void reallocatePoolBuffer()>();
v = interfaceinvoke v.<org.glassfish.grizzly.memory.ThreadLocalPool: int remaining()>();
label:
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.lang.Object allocateFromPool(org.glassfish.grizzly.memory.ThreadLocalPool,int)>(v, v);
return v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer allocateByteBuffer0(int)>(v);
return v;
}
public java.nio.ByteBuffer reallocateByteBuffer(java.nio.ByteBuffer, int)
{
org.glassfish.grizzly.memory.ByteBufferManager v;
org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool v;
java.nio.ByteBuffer v, v, v;
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
int v, v, v, v;
java.lang.Object v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: java.nio.ByteBuffer;
v := @parameter: int;
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
if v < v goto label;
return v;
label:
v = staticinvoke <org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool getByteBufferThreadLocalPool()>();
if v == null goto label;
v = interfaceinvoke v.<org.glassfish.grizzly.memory.ThreadLocalPool: java.lang.Object reallocate(java.lang.Object,int)>(v, v);
if v == null goto label;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig monitoringConfig>;
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
v = v - v;
staticinvoke <org.glassfish.grizzly.memory.ProbeNotifier: void notifyBufferAllocatedFromPool(org.glassfish.grizzly.monitoring.DefaultMonitoringConfig,int)>(v, v);
return v;
label:
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer allocateByteBuffer(int)>(v);
virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer flip()>();
v = virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer put(java.nio.ByteBuffer)>(v);
return v;
}
public void releaseByteBuffer(java.nio.ByteBuffer)
{
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
org.glassfish.grizzly.memory.ByteBufferManager v;
org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool v;
int v;
java.nio.ByteBuffer v, v;
boolean v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: java.nio.ByteBuffer;
v = staticinvoke <org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool getByteBufferThreadLocalPool()>();
if v == null goto label;
v = virtualinvoke v.<java.nio.ByteBuffer: java.nio.ByteBuffer clear()>();
v = interfaceinvoke v.<org.glassfish.grizzly.memory.ThreadLocalPool: boolean release(java.lang.Object)>(v);
if v == 0 goto label;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig monitoringConfig>;
v = virtualinvoke v.<java.nio.ByteBuffer: int capacity()>();
staticinvoke <org.glassfish.grizzly.memory.ProbeNotifier: void notifyBufferReleasedToPool(org.glassfish.grizzly.monitoring.DefaultMonitoringConfig,int)>(v, v);
label:
return;
}
protected org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper createSmallBuffer()
{
org.glassfish.grizzly.memory.ByteBufferManager v;
org.glassfish.grizzly.ThreadCache$CachedTypeIndex v;
java.nio.ByteBuffer v;
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper v;
int v, v;
java.lang.Object v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.ThreadCache$CachedTypeIndex SMALL_BUFFER_CACHE_IDX>;
v = staticinvoke <org.glassfish.grizzly.ThreadCache: java.lang.Object takeFromCache(org.glassfish.grizzly.ThreadCache$CachedTypeIndex)>(v);
if v == null goto label;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig monitoringConfig>;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: int maxSmallBufferSize>;
staticinvoke <org.glassfish.grizzly.memory.ProbeNotifier: void notifyBufferAllocatedFromPool(org.glassfish.grizzly.monitoring.DefaultMonitoringConfig,int)>(v, v);
return v;
label:
v = new org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: int maxSmallBufferSize>;
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer allocateByteBuffer0(int)>(v);
specialinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager$SmallByteBufferWrapper: void <init>(org.glassfish.grizzly.memory.ByteBufferManager,java.nio.ByteBuffer)>(v, v);
return v;
}
public org.glassfish.grizzly.monitoring.MonitoringConfig getMonitoringConfig()
{
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
org.glassfish.grizzly.memory.ByteBufferManager v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig monitoringConfig>;
return v;
}
protected java.lang.Object createJmxManagementObject()
{
java.lang.Object v;
org.glassfish.grizzly.memory.ByteBufferManager v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v = staticinvoke <org.glassfish.grizzly.monitoring.MonitoringUtils: java.lang.Object loadJmxObject(java.lang.String,java.lang.Object,java.lang.Class)>("org.glassfish.grizzly.memory.jmx.ByteBufferManager", v, class "Lorg/glassfish/grizzly/memory/ByteBufferManager;");
return v;
}
protected final java.nio.ByteBuffer allocateByteBuffer0(int)
{
org.glassfish.grizzly.monitoring.DefaultMonitoringConfig v;
org.glassfish.grizzly.memory.ByteBufferManager v;
int v;
java.nio.ByteBuffer v, v;
boolean v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: int;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.monitoring.DefaultMonitoringConfig monitoringConfig>;
staticinvoke <org.glassfish.grizzly.memory.ProbeNotifier: void notifyBufferAllocated(org.glassfish.grizzly.monitoring.DefaultMonitoringConfig,int)>(v, v);
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: boolean isDirect>;
if v == 0 goto label;
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocateDirect(int)>(v);
return v;
label:
v = staticinvoke <java.nio.ByteBuffer: java.nio.ByteBuffer allocate(int)>(v);
return v;
}
private org.glassfish.grizzly.memory.ByteBufferManager$TrimAwareWrapper createTrimAwareBuffer(java.nio.ByteBuffer)
{
org.glassfish.grizzly.memory.ByteBufferManager v;
org.glassfish.grizzly.ThreadCache$CachedTypeIndex v;
java.lang.Object v;
org.glassfish.grizzly.memory.ByteBufferManager$TrimAwareWrapper v;
java.nio.ByteBuffer v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v := @parameter: java.nio.ByteBuffer;
v = <org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.ThreadCache$CachedTypeIndex CACHE_IDX>;
v = staticinvoke <org.glassfish.grizzly.ThreadCache: java.lang.Object takeFromCache(org.glassfish.grizzly.ThreadCache$CachedTypeIndex)>(v);
if v == null goto label;
v.<org.glassfish.grizzly.memory.ByteBufferManager$TrimAwareWrapper: java.nio.ByteBuffer visible> = v;
return v;
label:
v = new org.glassfish.grizzly.memory.ByteBufferManager$TrimAwareWrapper;
specialinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager$TrimAwareWrapper: void <init>(org.glassfish.grizzly.memory.ByteBufferManager,java.nio.ByteBuffer)>(v, v);
return v;
}
private void reallocatePoolBuffer()
{
org.glassfish.grizzly.memory.ByteBufferManager v;
org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool v;
int v;
java.nio.ByteBuffer v;
v := @this: org.glassfish.grizzly.memory.ByteBufferManager;
v = v.<org.glassfish.grizzly.memory.ByteBufferManager: int maxBufferSize>;
v = virtualinvoke v.<org.glassfish.grizzly.memory.ByteBufferManager: java.nio.ByteBuffer allocateByteBuffer0(int)>(v);
v = staticinvoke <org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool getByteBufferThreadLocalPool()>();
if v == null goto label;
interfaceinvoke v.<org.glassfish.grizzly.memory.ThreadLocalPool: void reset(java.lang.Object)>(v);
label:
return;
}
private static org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool getByteBufferThreadLocalPool()
{
org.glassfish.grizzly.memory.ThreadLocalPool v;
boolean v;
v = staticinvoke <org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.memory.ThreadLocalPool getThreadLocalPool()>();
v = v instanceof org.glassfish.grizzly.memory.ByteBufferManager$ByteBufferThreadLocalPool;
if v != 0 goto label;
v = null;
label:
return v;
}
static void <clinit>()
{
int v;
org.glassfish.grizzly.ThreadCache$CachedTypeIndex v;
java.lang.Class v;
java.lang.String v, v;
java.lang.Integer v;
v = class "Lorg/glassfish/grizzly/memory/ByteBufferManager;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
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[])>("\u.taw-cache-size");
v = staticinvoke <java.lang.Integer: java.lang.Integer getInteger(java.lang.String,int)>(v, 2);
v = virtualinvoke v.<java.lang.Integer: int intValue()>();
v = staticinvoke <org.glassfish.grizzly.ThreadCache: org.glassfish.grizzly.ThreadCache$CachedTypeIndex obtainIndex(java.lang.Class,int)>(class "Lorg/glassfish/grizzly/memory/ByteBufferManager$TrimAwareWrapper;", v);
<org.glassfish.grizzly.memory.ByteBufferManager: org.glassfish.grizzly.ThreadCache$CachedTypeIndex CACHE_IDX> = v;
return;
}
}