protected int
Total number of Strings in the symbol table; only used for child tables.
protected final boolean
Flag that indicates whether we should throw an exception if enough
hash collisions are detected (true); or just worked around (false).
protected int[]
Primary hash information area: consists of 2 * _hashSize
entries of 16 bytes (4 ints), arranged in a cascading lookup
structure (details of which may be tweaked depending on expected rates
of collisions).
protected boolean
Flag that indicates whether underlying data structures for
the main hash area are shared or not.
protected int
Number of slots for primary entries within
_hashArea
; which is
at most
1/8
of actual size of the underlying array (4-int slots,
primary covers only half of the area; plus, additional area for longer
symbols after hash area).
Entity that knows how to intern
Strings, if needed,
or null
if no interning is wanted.
protected int
Offset within
_hashArea
that follows main slots and contains
quads for longer names (13 bytes or longer), and points to the
first available int that may be used for appending quads of the next
long name.
Array that contains
String
instances matching
entries in
_hashArea
.
Reference to the root symbol table, for child tables, so
that they can merge table information back as necessary.
protected int
Offset within
_hashArea
where secondary entries start
protected final int
Seed value we use as the base to make hash codes non-static between
different runs, but still stable for lifetime of a single symbol table
instance.
protected int
Pointer to the offset within spill-over area where there is room
for more spilled over entries (if any).
protected final AtomicReference<com.fasterxml.jackson.core.sym.ByteQuadsCanonicalizer.TableInfo>
Member that is only used by the root table instance: root
passes immutable state info child instances, and children
may return new state if they add entries to the table.
protected int
Constant that determines size of buckets for tertiary entries:
1 << _tertiaryShift
is the size, and shift value
is also used for translating from primary offset into
tertiary bucket (shift right by 4 + _tertiaryShift
).
protected int
Offset within
_hashArea
where tertiary entries start
protected static final int
Let's only share reasonably sized symbol tables.