final class org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer extends org.glassfish.grizzly.memory.HeapBuffer implements org.glassfish.grizzly.memory.AbstractMemoryManager$TrimAware
{
private org.glassfish.grizzly.memory.HeapMemoryManager mm;
private void <init>(org.glassfish.grizzly.memory.HeapMemoryManager, byte[], int, int)
{
byte[] v;
org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer v;
org.glassfish.grizzly.memory.HeapMemoryManager v;
int v, v;
v := @this: org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer;
v := @parameter: org.glassfish.grizzly.memory.HeapMemoryManager;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<org.glassfish.grizzly.memory.HeapBuffer: void <init>(byte[],int,int)>(v, v, v);
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: org.glassfish.grizzly.memory.HeapMemoryManager mm> = v;
return;
}
public void trim()
{
byte[] v;
org.glassfish.grizzly.memory.HeapMemoryManager$HeapBufferThreadLocalPool v;
org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer v;
int v, v, v, v, v, v, v, v;
boolean v, v;
v := @this: org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer;
virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: void checkDispose()>();
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int cap>;
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int pos>;
v = v - v;
if v <= 0 goto label;
v = staticinvoke <org.glassfish.grizzly.memory.HeapMemoryManager: org.glassfish.grizzly.memory.HeapMemoryManager$HeapBufferThreadLocalPool getHeapBufferThreadLocalPool()>();
if v == null goto label;
v = virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager$HeapBufferThreadLocalPool: boolean isLastAllocated(org.glassfish.grizzly.memory.HeapBuffer)>(v);
if v == 0 goto label;
virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: org.glassfish.grizzly.memory.HeapBuffer flip()>();
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int lim>;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int cap> = v;
virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager$HeapBufferThreadLocalPool: org.glassfish.grizzly.memory.HeapBuffer reduceLastAllocated(org.glassfish.grizzly.memory.HeapBuffer)>(v);
return;
label:
v = virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager$HeapBufferThreadLocalPool: boolean wantReset(int)>(v);
if v == 0 goto label;
virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: org.glassfish.grizzly.memory.HeapBuffer flip()>();
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int lim>;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int cap> = v;
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: byte[] heap>;
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int offset>;
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int cap>;
v = v + v;
virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager$HeapBufferThreadLocalPool: void reset(byte[],int,int)>(v, v, v);
return;
label:
specialinvoke v.<org.glassfish.grizzly.memory.HeapBuffer: void trim()>();
return;
}
public void recycle()
{
org.glassfish.grizzly.ThreadCache$CachedTypeIndex v;
org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer v;
v := @this: org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: boolean allowBufferDispose> = 0;
v = <org.glassfish.grizzly.memory.HeapMemoryManager: org.glassfish.grizzly.ThreadCache$CachedTypeIndex CACHE_IDX>;
staticinvoke <org.glassfish.grizzly.ThreadCache: boolean putToCache(org.glassfish.grizzly.ThreadCache$CachedTypeIndex,java.lang.Object)>(v, v);
return;
}
public void dispose()
{
java.nio.ByteOrder v;
org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer v;
org.glassfish.grizzly.memory.HeapMemoryManager v;
v := @this: org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer;
virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: void prepareDispose()>();
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: org.glassfish.grizzly.memory.HeapMemoryManager mm>;
virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager: void release(org.glassfish.grizzly.memory.HeapBuffer)>(v);
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: org.glassfish.grizzly.memory.HeapMemoryManager mm> = null;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: java.nio.ByteBuffer byteBuffer> = null;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: byte[] heap> = null;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int pos> = 0;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int offset> = 0;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int lim> = 0;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int cap> = 0;
v = <java.nio.ByteOrder: java.nio.ByteOrder BIG_ENDIAN>;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: java.nio.ByteOrder order> = v;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: boolean bigEndian> = 1;
virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: void recycle()>();
return;
}
protected org.glassfish.grizzly.memory.HeapBuffer createHeapBuffer(int, int)
{
byte[] v;
org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer v, v;
org.glassfish.grizzly.memory.HeapMemoryManager v;
int v, v, v, v;
v := @this: org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer;
v := @parameter: int;
v := @parameter: int;
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: org.glassfish.grizzly.memory.HeapMemoryManager mm>;
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: byte[] heap>;
v = v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int offset>;
v = v + v;
v = virtualinvoke v.<org.glassfish.grizzly.memory.HeapMemoryManager: org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer createTrimAwareBuffer(byte[],int,int)>(v, v, v);
return v;
}
void initialize(org.glassfish.grizzly.memory.HeapMemoryManager, byte[], int, int)
{
byte[] v;
org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer v;
org.glassfish.grizzly.memory.HeapMemoryManager v;
int v, v;
v := @this: org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer;
v := @parameter: org.glassfish.grizzly.memory.HeapMemoryManager;
v := @parameter: byte[];
v := @parameter: int;
v := @parameter: int;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: org.glassfish.grizzly.memory.HeapMemoryManager mm> = v;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: byte[] heap> = v;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int offset> = v;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int pos> = 0;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int cap> = v;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: int lim> = v;
v.<org.glassfish.grizzly.memory.HeapMemoryManager$TrimmableHeapBuffer: java.lang.Exception disposeStackTrace> = null;
return;
}
}