public final class com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer extends java.lang.Object
{
public static final int HASH_MULT;
private static final int DEFAULT_T_SIZE;
private static final int MAX_T_SIZE;
static final int MAX_ENTRIES_FOR_REUSE;
static final int MAX_COLL_CHAIN_LENGTH;
protected final com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer _parent;
protected final java.util.concurrent.atomic.AtomicReference _tableInfo;
protected final int _seed;
protected final int _flags;
protected boolean _canonicalize;
protected java.lang.String[] _symbols;
protected com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets;
protected int _size;
protected int _sizeThreshold;
protected int _indexMask;
protected int _longestCollisionList;
protected boolean _hashShared;
protected java.util.BitSet _overflows;
private void <init>(int)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
int v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer _parent> = null;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _seed> = v;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _canonicalize> = 1;
v = (int) -1;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _flags> = v;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _hashShared> = 0;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _longestCollisionList> = 0;
v = new java.util.concurrent.atomic.AtomicReference;
v = staticinvoke <com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo createInitial(int)>(64);
specialinvoke v.<java.util.concurrent.atomic.AtomicReference: void <init>(java.lang.Object)>(v);
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.concurrent.atomic.AtomicReference _tableInfo> = v;
return;
}
private void <init>(com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer, int, int, com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v, v;
java.lang.String[] v, v;
com.fasterxml.jackson.core.JsonFactory$Feature v;
int v, v, v, v, v, v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo v;
boolean v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: int;
v := @parameter: int;
v := @parameter: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer _parent> = v;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _seed> = v;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.concurrent.atomic.AtomicReference _tableInfo> = null;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _flags> = v;
v = <com.fasterxml.jackson.core.JsonFactory$Feature: com.fasterxml.jackson.core.JsonFactory$Feature CANONICALIZE_FIELD_NAMES>;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonFactory$Feature: boolean enabledIn(int)>(v);
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _canonicalize> = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: java.lang.String[] symbols>;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols> = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] buckets>;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets> = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: int size>;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size> = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: int longestCollisionList>;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _longestCollisionList> = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = lengthof v;
v = staticinvoke <com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _thresholdSize(int)>(v);
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _sizeThreshold> = v;
v = v - 1;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _indexMask> = v;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _hashShared> = 1;
return;
}
private static int _thresholdSize(int)
{
int v, v, v;
v := @parameter: int;
v = v >> 2;
v = v - v;
return v;
}
public static com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer createRoot()
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
int v, v;
long v, v;
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v >>> 32;
v = v + v;
v = v | 1;
v = staticinvoke <com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer createRoot(int)>(v);
return v;
}
protected static com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer createRoot(int)
{
int v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
v := @parameter: int;
v = new com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: void <init>(int)>(v);
return v;
}
public com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer makeChild(int)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v, v;
int v, v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: int;
v = new com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _seed>;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.concurrent.atomic.AtomicReference _tableInfo>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: void <init>(com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer,int,int,com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo)>(v, v, v, v);
return v;
}
public void release()
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v, v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo v;
boolean v, v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean maybeDirty()>();
if v != 0 goto label;
return;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer _parent>;
if v == null goto label;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _canonicalize>;
if v == 0 goto label;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer _parent>;
v = new com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo;
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: void <init>(com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer)>(v);
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: void mergeChild(com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo)>(v);
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _hashShared> = 1;
label:
return;
}
private void mergeChild(com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
int v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v, v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: int size>;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.concurrent.atomic.AtomicReference _tableInfo>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: int size>;
if v != v goto label;
return;
label:
if v <= 12000 goto label;
v = staticinvoke <com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo createInitial(int)>(64);
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.concurrent.atomic.AtomicReference _tableInfo>;
virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: boolean compareAndSet(java.lang.Object,java.lang.Object)>(v, v);
return;
}
public int size()
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
int v, v;
java.lang.Object v;
java.util.concurrent.atomic.AtomicReference v, v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.concurrent.atomic.AtomicReference _tableInfo>;
if v == null goto label;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.concurrent.atomic.AtomicReference _tableInfo>;
v = virtualinvoke v.<java.util.concurrent.atomic.AtomicReference: java.lang.Object get()>();
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$TableInfo: int size>;
return v;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size>;
return v;
}
public int bucketCount()
{
int v;
java.lang.String[] v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = lengthof v;
return v;
}
public boolean maybeDirty()
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
boolean v, v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _hashShared>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public int hashSeed()
{
int v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _seed>;
return v;
}
public int collisionCount()
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
int v, v, v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = 0;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v == null goto label;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: int length>;
v = v + v;
label:
v = v + 1;
goto label;
label:
return v;
}
public int maxCollisionLength()
{
int v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _longestCollisionList>;
return v;
}
public java.lang.String findSymbol(char[], int, int, int)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
java.lang.String[] v;
int v, v, v, v, v, v, v, v;
java.lang.String v, v, v, v, v;
boolean v;
char v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket v, v;
char[] v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: char[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
if v >= 1 goto label;
return "";
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _canonicalize>;
if v != 0 goto label;
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[],int,int)>(v, v, v);
return v;
label:
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _hashToIndex(int)>(v);
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = v[v];
if v == null goto label;
v = virtualinvoke v.<java.lang.String: int length()>();
if v != v goto label;
v = 0;
label:
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v + v;
v = v[v];
if v != v goto label;
v = v + 1;
if v != v goto label;
return v;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v = v >> 1;
v = v[v];
if v == null goto label;
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: java.lang.String has(char[],int,int)>(v, v, v);
if v == null goto label;
return v;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket next>;
v = specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String _findSymbol2(char[],int,int,com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket)>(v, v, v, v);
if v == null goto label;
return v;
label:
v = specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String _addSymbol(char[],int,int,int,int)>(v, v, v, v, v);
return v;
}
private java.lang.String _findSymbol2(char[], int, int, com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
int v, v;
char[] v;
java.lang.String v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: char[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket;
label:
if v == null goto label;
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: java.lang.String has(char[],int,int)>(v, v, v);
if v == null goto label;
return v;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket next>;
goto label;
label:
return null;
}
private java.lang.String _addSymbol(char[], int, int, int, int)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
java.lang.String[] v, v;
com.fasterxml.jackson.core.JsonFactory$Feature v;
com.fasterxml.jackson.core.util.InternCache v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v;
java.lang.String v, v, v;
boolean v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket v, v;
char[] v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] v, v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: char[];
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _hashShared>;
if v == 0 goto label;
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: void copyArrays()>();
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _hashShared> = 0;
goto label;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size>;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _sizeThreshold>;
if v < v goto label;
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: void rehash()>();
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int calcHash(char[],int,int)>(v, v, v);
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _hashToIndex(int)>(v);
label:
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[],int,int)>(v, v, v);
v = v;
v = <com.fasterxml.jackson.core.JsonFactory$Feature: com.fasterxml.jackson.core.JsonFactory$Feature INTERN_FIELD_NAMES>;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _flags>;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonFactory$Feature: boolean enabledIn(int)>(v);
if v == 0 goto label;
v = <com.fasterxml.jackson.core.util.InternCache: com.fasterxml.jackson.core.util.InternCache instance>;
v = virtualinvoke v.<com.fasterxml.jackson.core.util.InternCache: java.lang.String intern(java.lang.String)>(v);
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size>;
v = v + 1;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size> = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = v[v];
if v != null goto label;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v[v] = v;
goto label;
label:
v = v >> 1;
v = new com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v = v[v];
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: void <init>(java.lang.String,com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket)>(v, v);
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: int length>;
if v <= 150 goto label;
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: void _handleSpillOverflow(int,com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket,int)>(v, v, v);
goto label;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v[v] = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _longestCollisionList>;
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _longestCollisionList> = v;
label:
return v;
}
private void _handleSpillOverflow(int, com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket, int)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
java.lang.String[] v;
com.fasterxml.jackson.core.JsonFactory$Feature v;
int v, v, v, v, v, v, v;
java.lang.String v;
boolean v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket v;
java.util.BitSet v, v, v, v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: int;
v := @parameter: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket;
v := @parameter: int;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.BitSet _overflows>;
if v != null goto label;
v = new java.util.BitSet;
specialinvoke v.<java.util.BitSet: void <init>()>();
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.BitSet _overflows> = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.BitSet _overflows>;
virtualinvoke v.<java.util.BitSet: void set(int)>(v);
goto label;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.BitSet _overflows>;
v = virtualinvoke v.<java.util.BitSet: boolean get(int)>(v);
if v == 0 goto label;
v = <com.fasterxml.jackson.core.JsonFactory$Feature: com.fasterxml.jackson.core.JsonFactory$Feature FAIL_ON_SYMBOL_HASH_OVERFLOW>;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _flags>;
v = virtualinvoke v.<com.fasterxml.jackson.core.JsonFactory$Feature: boolean enabledIn(int)>(v);
if v == 0 goto label;
virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: void _reportTooManyCollisions(int)>(150);
label:
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _canonicalize> = 0;
goto label;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.BitSet _overflows>;
virtualinvoke v.<java.util.BitSet: void set(int)>(v);
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: java.lang.String symbol>;
v[v] = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v[v] = null;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size>;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: int length>;
v = v - v;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size> = v;
v = (int) -1;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _longestCollisionList> = v;
return;
}
public int _hashToIndex(int)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
int v, v, v, v, v, v, v, v, v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: int;
v = v >>> 15;
v = v + v;
v = v << 7;
v = v ^ v;
v = v >>> 3;
v = v + v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _indexMask>;
v = v & v;
return v;
}
public int calcHash(char[], int, int)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
char v;
int v, v, v, v, v, v, v;
char[] v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: char[];
v := @parameter: int;
v := @parameter: int;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _seed>;
v = v;
v = v + v;
label:
if v >= v goto label;
v = v * 33;
v = v[v];
v = v + v;
v = v + 1;
goto label;
label:
if v != 0 goto label;
v = 1;
goto label;
label:
v = v;
label:
return v;
}
public int calcHash(java.lang.String)
{
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
char v;
int v, v, v, v, v;
java.lang.String v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: int length()>();
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _seed>;
v = 0;
label:
if v >= v goto label;
v = v * 33;
v = virtualinvoke v.<java.lang.String: char charAt(int)>(v);
v = v + v;
v = v + 1;
goto label;
label:
if v != 0 goto label;
v = 1;
goto label;
label:
v = v;
label:
return v;
}
private void copyArrays()
{
java.lang.Object[] v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
int v, v;
java.lang.String[] v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = lengthof v;
v = staticinvoke <java.util.Arrays: java.lang.Object[] copyOf(java.lang.Object[],int)>(v, v);
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols> = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v = lengthof v;
v = staticinvoke <java.util.Arrays: java.lang.Object[] copyOf(java.lang.Object[],int)>(v, v);
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets> = v;
return;
}
private void rehash()
{
java.lang.IllegalStateException v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
java.lang.Integer v, v;
java.lang.Object[] v;
java.lang.String[] v, v, 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;
java.lang.String v, v, v, v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket v, v, v, v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] v, v, v, v, v, v, v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = lengthof v;
v = v + v;
if v <= 65536 goto label;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size> = 0;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _canonicalize> = 0;
v = newarray (java.lang.String)[64];
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols> = v;
v = newarray (com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket)[32];
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets> = v;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _indexMask> = 63;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: boolean _hashShared> = 0;
return;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v = newarray (java.lang.String)[v];
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols> = v;
v = v >> 1;
v = newarray (com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket)[v];
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets> = v;
v = v - 1;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _indexMask> = v;
v = staticinvoke <com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _thresholdSize(int)>(v);
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _sizeThreshold> = v;
v = 0;
v = 0;
v = 0;
label:
if v >= v goto label;
v = v[v];
if v == null goto label;
v = v + 1;
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int calcHash(java.lang.String)>(v);
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _hashToIndex(int)>(v);
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = v[v];
if v != null goto label;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v[v] = v;
goto label;
label:
v = v >> 1;
v = new com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v = v[v];
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: void <init>(java.lang.String,com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket)>(v, v);
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v[v] = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: int length>;
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
label:
v = v + 1;
goto label;
label:
v = v >> 1;
v = 0;
label:
if v >= v goto label;
v = v[v];
label:
if v == null goto label;
v = v + 1;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: java.lang.String symbol>;
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int calcHash(java.lang.String)>(v);
v = virtualinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _hashToIndex(int)>(v);
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = v[v];
if v != null goto label;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v[v] = v;
goto label;
label:
v = v >> 1;
v = new com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v = v[v];
specialinvoke v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: void <init>(java.lang.String,com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket)>(v, v);
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v[v] = v;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: int length>;
v = staticinvoke <java.lang.Math: int max(int,int)>(v, v);
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket next>;
goto label;
label:
v = v + 1;
goto label;
label:
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _longestCollisionList> = v;
v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.util.BitSet _overflows> = null;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size>;
if v == v goto label;
v = new java.lang.IllegalStateException;
v = newarray (java.lang.Object)[2];
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Internal error on SymbolTable.rehash(): had %d entries; now have %d", v);
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
protected void _reportTooManyCollisions(int)
{
java.lang.IllegalStateException v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
int v, v;
java.lang.String v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v := @parameter: int;
v = new java.lang.IllegalStateException;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int,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[])>("Longest collision chain in symbol table (of size \u) now exceeds maximum, \u -- suspect a DoS attack based on hash collisions");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
}
protected void verifyInternalConsistency()
{
java.lang.IllegalStateException v;
java.lang.Object[] v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer v;
java.lang.String[] v, v;
java.lang.Integer v, v;
int v, v, v, v, v, v, v;
java.lang.String v, v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket v;
com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] v;
v := @this: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer;
v = 0;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: java.lang.String[] _symbols>;
v = v[v];
if v == null goto label;
v = v + 1;
label:
v = v + 1;
goto label;
label:
v = v >> 1;
v = 0;
label:
if v >= v goto label;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket[] _buckets>;
v = v[v];
label:
if v == null goto label;
v = v + 1;
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket: com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer$Bucket next>;
goto label;
label:
v = v + 1;
goto label;
label:
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size>;
if v == v goto label;
v = new java.lang.IllegalStateException;
v = newarray (java.lang.Object)[2];
v = v.<com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer: int _size>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = staticinvoke <java.lang.String: java.lang.String format(java.lang.String,java.lang.Object[])>("Internal error: expected internal size %d vs calculated count %d", v);
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
return;
}
}