8339260: Move rarely used constants out of ClassFile

Reviewed-by: asotona
This commit is contained in:
Chen Liang 2024-09-26 06:34:18 +00:00
parent 47c10694c6
commit 8c8f0d85ce
37 changed files with 1545 additions and 1916 deletions

View file

@ -38,6 +38,57 @@ public sealed interface PoolEntry
LoadableConstantEntry, MemberRefEntry, ModuleEntry, NameAndTypeEntry,
PackageEntry {
/** The {@linkplain #tag tag} for {@link ClassEntry CONSTANT_Class} constant kind. */
int TAG_CLASS = 7;
/** The {@linkplain #tag tag} for {@link DoubleEntry CONSTANT_Double} constant kind. */
int TAG_DOUBLE = 6;
/** The {@linkplain #tag tag} for {@link ConstantDynamicEntry CONSTANT_Dynamic} constant kind. */
int TAG_DYNAMIC = 17;
/** The {@linkplain #tag tag} for {@link FieldRefEntry CONSTANT_Fieldref} constant kind. */
int TAG_FIELDREF = 9;
/** The {@linkplain #tag tag} for {@link FloatEntry CONSTANT_Float} constant kind. */
int TAG_FLOAT = 4;
/** The {@linkplain #tag tag} for {@link IntegerEntry CONSTANT_Integer} constant kind. */
int TAG_INTEGER = 3;
/** The {@linkplain #tag tag} for {@link InterfaceMethodRefEntry CONSTANT_InterfaceMethodref} constant kind. */
int TAG_INTERFACE_METHODREF = 11;
/** The {@linkplain #tag tag} for {@link InvokeDynamicEntry CONSTANT_InvokeDynamic} constant kind. */
int TAG_INVOKE_DYNAMIC = 18;
/** The {@linkplain #tag tag} for {@link LongEntry CONSTANT_Long} constant kind. */
int TAG_LONG = 5;
/** The {@linkplain #tag tag} for {@link MethodHandleEntry CONSTANT_MethodHandle} constant kind. */
int TAG_METHOD_HANDLE = 15;
/** The {@linkplain #tag tag} for {@link MethodRefEntry CONSTANT_Methodref} constant kind. */
int TAG_METHODREF = 10;
/** The {@linkplain #tag tag} for {@link MethodTypeEntry CONSTANT_MethodType} constant kind. */
int TAG_METHOD_TYPE = 16;
/** The {@linkplain #tag tag} for {@link ModuleEntry CONSTANT_Module} constant kind. */
int TAG_MODULE = 19;
/** The {@linkplain #tag tag} for {@link NameAndTypeEntry CONSTANT_NameAndType} constant kind. */
int TAG_NAME_AND_TYPE = 12;
/** The {@linkplain #tag tag} for {@link PackageEntry CONSTANT_Package} constant kind. */
int TAG_PACKAGE = 20;
/** The {@linkplain #tag tag} for {@link StringEntry CONSTANT_String} constant kind. */
int TAG_STRING = 8;
/** The {@linkplain #tag tag} for {@link Utf8Entry CONSTANT_Utf8} constant kind. */
int TAG_UTF8 = 1;
/**
* {@return the constant pool this entry is from}
*/
@ -45,6 +96,10 @@ public sealed interface PoolEntry
/**
* {@return the constant pool tag that describes the type of this entry}
*
* @apiNote
* {@code TAG_}-prefixed constants in this class, such as {@link #TAG_UTF8},
* describe the possible return values of this method.
*/
byte tag();