public class com.fasterxml.jackson.core.util.BufferRecycler extends java.lang.Object
{
public static final int BYTE_READ_IO_BUFFER;
public static final int BYTE_WRITE_ENCODING_BUFFER;
public static final int BYTE_WRITE_CONCAT_BUFFER;
public static final int BYTE_BASE64_CODEC_BUFFER;
public static final int CHAR_TOKEN_BUFFER;
public static final int CHAR_CONCAT_BUFFER;
public static final int CHAR_TEXT_BUFFER;
public static final int CHAR_NAME_COPY_BUFFER;
private static final int[] BYTE_BUFFER_LENGTHS;
private static final int[] CHAR_BUFFER_LENGTHS;
protected final java.util.concurrent.atomic.AtomicReferenceArray _byteBuffers;
protected final java.util.concurrent.atomic.AtomicReferenceArray _charBuffers;
public void <init>()
{
com.fasterxml.jackson.core.util.BufferRecycler v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
specialinvoke v.<com.fasterxml.jackson.core.util.BufferRecycler: void <init>(int,int)>(4, 4);
return;
}
protected void <init>(int, int)
{
int v, v;
com.fasterxml.jackson.core.util.BufferRecycler v;
java.util.concurrent.atomic.AtomicReferenceArray v, v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = new java.util.concurrent.atomic.AtomicReferenceArray;
specialinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: void <init>(int)>(v);
v.<com.fasterxml.jackson.core.util.BufferRecycler: java.util.concurrent.atomic.AtomicReferenceArray _byteBuffers> = v;
v = new java.util.concurrent.atomic.AtomicReferenceArray;
specialinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: void <init>(int)>(v);
v.<com.fasterxml.jackson.core.util.BufferRecycler: java.util.concurrent.atomic.AtomicReferenceArray _charBuffers> = v;
return;
}
public final byte[] allocByteBuffer(int)
{
int v;
byte[] v;
com.fasterxml.jackson.core.util.BufferRecycler v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v = virtualinvoke v.<com.fasterxml.jackson.core.util.BufferRecycler: byte[] allocByteBuffer(int,int)>(v, 0);
return v;
}
public byte[] allocByteBuffer(int, int)
{
int v, v, v, v;
java.lang.Object v;
com.fasterxml.jackson.core.util.BufferRecycler v;
java.util.concurrent.atomic.AtomicReferenceArray v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v := @parameter: int;
v = virtualinvoke v.<com.fasterxml.jackson.core.util.BufferRecycler: int byteBufferLength(int)>(v);
if v >= v goto label;
v = v;
label:
v = v.<com.fasterxml.jackson.core.util.BufferRecycler: java.util.concurrent.atomic.AtomicReferenceArray _byteBuffers>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: java.lang.Object getAndSet(int,java.lang.Object)>(v, null);
if v == null goto label;
v = lengthof v;
if v >= v goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.core.util.BufferRecycler: byte[] balloc(int)>(v);
label:
return v;
}
public void releaseByteBuffer(int, byte[])
{
byte[] v;
int v;
com.fasterxml.jackson.core.util.BufferRecycler v;
java.util.concurrent.atomic.AtomicReferenceArray v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v := @parameter: byte[];
v = v.<com.fasterxml.jackson.core.util.BufferRecycler: java.util.concurrent.atomic.AtomicReferenceArray _byteBuffers>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: void set(int,java.lang.Object)>(v, v);
return;
}
public final char[] allocCharBuffer(int)
{
int v;
char[] v;
com.fasterxml.jackson.core.util.BufferRecycler v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v = virtualinvoke v.<com.fasterxml.jackson.core.util.BufferRecycler: char[] allocCharBuffer(int,int)>(v, 0);
return v;
}
public char[] allocCharBuffer(int, int)
{
int v, v, v, v;
java.lang.Object v;
com.fasterxml.jackson.core.util.BufferRecycler v;
java.util.concurrent.atomic.AtomicReferenceArray v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v := @parameter: int;
v = virtualinvoke v.<com.fasterxml.jackson.core.util.BufferRecycler: int charBufferLength(int)>(v);
if v >= v goto label;
v = v;
label:
v = v.<com.fasterxml.jackson.core.util.BufferRecycler: java.util.concurrent.atomic.AtomicReferenceArray _charBuffers>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: java.lang.Object getAndSet(int,java.lang.Object)>(v, null);
if v == null goto label;
v = lengthof v;
if v >= v goto label;
label:
v = virtualinvoke v.<com.fasterxml.jackson.core.util.BufferRecycler: char[] calloc(int)>(v);
label:
return v;
}
public void releaseCharBuffer(int, char[])
{
int v;
char[] v;
com.fasterxml.jackson.core.util.BufferRecycler v;
java.util.concurrent.atomic.AtomicReferenceArray v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v := @parameter: char[];
v = v.<com.fasterxml.jackson.core.util.BufferRecycler: java.util.concurrent.atomic.AtomicReferenceArray _charBuffers>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReferenceArray: void set(int,java.lang.Object)>(v, v);
return;
}
protected int byteBufferLength(int)
{
int[] v;
int v, v;
com.fasterxml.jackson.core.util.BufferRecycler v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v = <com.fasterxml.jackson.core.util.BufferRecycler: int[] BYTE_BUFFER_LENGTHS>;
v = v[v];
return v;
}
protected int charBufferLength(int)
{
int[] v;
int v, v;
com.fasterxml.jackson.core.util.BufferRecycler v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v = <com.fasterxml.jackson.core.util.BufferRecycler: int[] CHAR_BUFFER_LENGTHS>;
v = v[v];
return v;
}
protected byte[] balloc(int)
{
int v;
byte[] v;
com.fasterxml.jackson.core.util.BufferRecycler v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v = newarray (byte)[v];
return v;
}
protected char[] calloc(int)
{
int v;
char[] v;
com.fasterxml.jackson.core.util.BufferRecycler v;
v := @this: com.fasterxml.jackson.core.util.BufferRecycler;
v := @parameter: int;
v = newarray (char)[v];
return v;
}
static void <clinit>()
{
int[] v, v;
v = newarray (int)[4];
v[0] = 8000;
v[1] = 8000;
v[2] = 2000;
v[3] = 2000;
<com.fasterxml.jackson.core.util.BufferRecycler: int[] BYTE_BUFFER_LENGTHS> = v;
v = newarray (int)[4];
v[0] = 4000;
v[1] = 4000;
v[2] = 200;
v[3] = 200;
<com.fasterxml.jackson.core.util.BufferRecycler: int[] CHAR_BUFFER_LENGTHS> = v;
return;
}
}