Top Inners Fields Constructors Methods
jdk.internal.classfile.impl

public Class StackMapDecoder

extends Object
Class Inheritance
Imports
java.lang.classfile.BufWriter, .ClassReader, .Label, .MethodModel, java.lang.classfile.attribute.StackMapFrameInfo, java.lang.classfile.attribute.StackMapFrameInfo.*, java.lang.classfile.constantpool.ClassEntry, java.lang.constant.ConstantDescs, .MethodTypeDesc, java.lang.reflect.AccessFlag, java.util.List, .Objects, .TreeMap

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static record
public static record
public static record

Field Summary

Modifier and TypeField and Description
private final ClassReader
private final LabelContext
private final List<StackMapFrameInfo.VerificationTypeInfo>
private int
p

private final int
private static final int
private static final int

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
pack-priv List<StackMapFrameInfo>
private static boolean
pack-priv static List<StackMapFrameInfo.VerificationTypeInfo>
public static List<StackMapFrameInfo.VerificationTypeInfo>
initFrameLocals(ClassEntry thisClass, String methodName, MethodTypeDesc methodType, boolean isStatic)

private StackMapFrameInfo.VerificationTypeInfo
private int
u2()

private static void
public static void
private static void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

classReaderback to summary
private final ClassReader classReader
ctxback to summary
private final LabelContext ctx
initFrameLocalsback to summary
private final List<StackMapFrameInfo.VerificationTypeInfo> initFrameLocals
pback to summary
private int p
posback to summary
private final int pos
SAME_EXTENDEDback to summary
private static final int SAME_EXTENDED
SAME_LOCALS_1_STACK_ITEM_EXTENDEDback to summary
private static final int SAME_LOCALS_1_STACK_ITEM_EXTENDED

Constructor Detail

StackMapDecoderback to summary
pack-priv StackMapDecoder(ClassReader classReader, int pos, LabelContext ctx, List<StackMapFrameInfo.VerificationTypeInfo> initFrameLocals)

Method Detail

entriesback to summary
pack-priv List<StackMapFrameInfo> entries()
equalsback to summary
private static boolean equals(List<StackMapFrameInfo.VerificationTypeInfo> l1, List<StackMapFrameInfo.VerificationTypeInfo> l2, int compareSize)
initFrameLocalsback to summary
pack-priv static List<StackMapFrameInfo.VerificationTypeInfo> initFrameLocals(MethodModel method)
initFrameLocalsback to summary
public static List<StackMapFrameInfo.VerificationTypeInfo> initFrameLocals(ClassEntry thisClass, String methodName, MethodTypeDesc methodType, boolean isStatic)
readVerificationTypeInfoback to summary
private StackMapFrameInfo.VerificationTypeInfo readVerificationTypeInfo()
u2back to summary
private int u2()
writeFrameback to summary
private static void writeFrame(BufWriterImpl out, int offsetDelta, List<StackMapFrameInfo.VerificationTypeInfo> prevLocals, StackMapFrameInfo fr)
writeFramesback to summary
public static void writeFrames(BufWriter b, List<StackMapFrameInfo> entries)
writeTypeInfoback to summary
private static void writeTypeInfo(BufWriterImpl bw, StackMapFrameInfo.VerificationTypeInfo vti)
jdk.internal.classfile.impl back to summary

public final Record StackMapDecoder.ObjectVerificationTypeInfoImpl

extends Record
implements ObjectVerificationTypeInfo
Class Inheritance
All Implemented Interfaces
java.lang.classfile.attribute.StackMapFrameInfo.ObjectVerificationTypeInfo, java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo
Record Components
className:ClassEntry

Field Summary

Modifier and TypeField and Description
private final ClassEntry
className

Record Component accessed by className().

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public ClassEntry
className()

Record Component getter of className.

Implements java.lang.classfile.attribute.StackMapFrameInfo.ObjectVerificationTypeInfo.className.

Returns the class of the object.

public boolean
equals(Object
the reference object with which to compare.
o
)

Implements abstract java.lang.Record.equals.

Indicates whether some other object is "equal to" this one.

public int
hashCode()

Implements abstract java.lang.Record.hashCode.

Returns a hash code value for the record.

public int
public String
toString()

Implements abstract java.lang.Record.toString.

Returns a string representation of the record.

Field Detail

classNameback to summary
private final ClassEntry className

Record Component accessed by className().

Constructor Detail

ObjectVerificationTypeInfoImplback to summary
public ObjectVerificationTypeInfoImpl(ClassEntry className)

Method Detail

classNameback to summary
public ClassEntry className()

Record Component getter of className.

Implements java.lang.classfile.attribute.StackMapFrameInfo.ObjectVerificationTypeInfo.className.

Doc from java.lang.classfile.attribute.StackMapFrameInfo.ObjectVerificationTypeInfo.className.

Returns the class of the object.

Returns:ClassEntry

the class of the object

equalsback to summary
public boolean equals(Object o)

Implements abstract java.lang.Record.equals.

Doc from java.lang.Record.equals.

Indicates whether some other object is "equal to" this one. In addition to the general contract of Object.equals, record classes must further obey the invariant that when a record instance is "copied" by passing the result of the record component accessor methods to the canonical constructor, as follows:

    R copy = new R(r.c1(), r.c2(), ..., r.cn());
then it must be the case that r.equals(copy).
Parameters
o:Object

the reference object with which to compare.

Returns:boolean

true if this record is equal to the argument; false otherwise.

Annotations
@Override
hashCodeback to summary
public int hashCode()

Implements abstract java.lang.Record.hashCode.

Doc from java.lang.Record.hashCode.

Returns a hash code value for the record. Obeys the general contract of Object.hashCode. For records, hashing behavior is constrained by the refined contract of Record.equals, so that any two records created from the same components must have the same hash code.

Returns:int

a hash code value for this record.

Annotations
@Override
tagback to summary
public int tag()

Implements java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo.tag.

Doc from java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo.tag.

Returns the tag of the type info.

Returns:int

the tag of the type info

Annotations
@Override
toStringback to summary
public String toString()

Implements abstract java.lang.Record.toString.

Doc from java.lang.Record.toString.

Returns a string representation of the record. In accordance with the general contract of Object#toString(), the toString method returns a string that "textually represents" this record. The result should be a concise but informative representation that is easy for a person to read.

In addition to this general contract, record classes must further participate in the invariant that any two records which are equal must produce equal strings. This invariant is necessarily relaxed in the rare case where corresponding equal component values might fail to produce equal strings for themselves.

Returns:String

a string representation of the object.

Annotations
@Override
jdk.internal.classfile.impl back to summary

public final Record StackMapDecoder.StackMapFrameImpl

extends Record
implements StackMapFrameInfo
Class Inheritance
All Implemented Interfaces
java.lang.classfile.attribute.StackMapFrameInfo
Record Components
frameType:int 
target:Label
locals:List<StackMapFrameInfo.VerificationTypeInfo> 
stack:List<StackMapFrameInfo.VerificationTypeInfo> 

Field Summary

Modifier and TypeField and Description
private final int
frameType

Record Component accessed by frameType().

private final List<StackMapFrameInfo.VerificationTypeInfo>
locals

Record Component accessed by locals().

private final List<StackMapFrameInfo.VerificationTypeInfo>
stack

Record Component accessed by stack().

private final Label
target

Record Component accessed by target().

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public final boolean
equals(Object
the reference object with which to compare.
o
)

Implements abstract java.lang.Record.equals.

Indicates whether some other object is "equal to" this one.

public int
frameType()

Record Component getter of frameType.

Implements java.lang.classfile.attribute.StackMapFrameInfo.frameType.

Returns the frame compact form type.

public final int
hashCode()

Implements abstract java.lang.Record.hashCode.

Returns a hash code value for the record.

public List<StackMapFrameInfo.VerificationTypeInfo>
locals()

Record Component getter of locals.

Implements java.lang.classfile.attribute.StackMapFrameInfo.locals.

Returns the expanded local variable types.

public List<StackMapFrameInfo.VerificationTypeInfo>
stack()

Record Component getter of stack.

Implements java.lang.classfile.attribute.StackMapFrameInfo.stack.

Returns the expanded stack types.

public Label
target()

Record Component getter of target.

Implements java.lang.classfile.attribute.StackMapFrameInfo.target.

Returns the frame target label.

public final String
toString()

Implements abstract java.lang.Record.toString.

Returns a string representation of the record.

Field Detail

frameTypeback to summary
private final int frameType

Record Component accessed by frameType().

localsback to summary
private final List<StackMapFrameInfo.VerificationTypeInfo> locals

Record Component accessed by locals().

stackback to summary
private final List<StackMapFrameInfo.VerificationTypeInfo> stack

Record Component accessed by stack().

targetback to summary
private final Label target

Record Component accessed by target().

Constructor Detail

StackMapFrameImplback to summary
public StackMapFrameImpl(int frameType, Label target, List<StackMapFrameInfo.VerificationTypeInfo> locals, List<StackMapFrameInfo.VerificationTypeInfo> stack)

Method Detail

equalsback to summary
public final boolean equals(Object o)

Implements abstract java.lang.Record.equals.

Doc from java.lang.Record.equals.

Indicates whether some other object is "equal to" this one. In addition to the general contract of Object.equals, record classes must further obey the invariant that when a record instance is "copied" by passing the result of the record component accessor methods to the canonical constructor, as follows:

    R copy = new R(r.c1(), r.c2(), ..., r.cn());
then it must be the case that r.equals(copy).
Parameters
o:Object

the reference object with which to compare.

Returns:boolean

true if this record is equal to the argument; false otherwise.

frameTypeback to summary
public int frameType()

Record Component getter of frameType.

Implements java.lang.classfile.attribute.StackMapFrameInfo.frameType.

Doc from java.lang.classfile.attribute.StackMapFrameInfo.frameType.

Returns the frame compact form type.

Returns:int

the frame compact form type

hashCodeback to summary
public final int hashCode()

Implements abstract java.lang.Record.hashCode.

Doc from java.lang.Record.hashCode.

Returns a hash code value for the record. Obeys the general contract of Object.hashCode. For records, hashing behavior is constrained by the refined contract of Record.equals, so that any two records created from the same components must have the same hash code.

Returns:int

a hash code value for this record.

localsback to summary
public List<StackMapFrameInfo.VerificationTypeInfo> locals()

Record Component getter of locals.

Implements java.lang.classfile.attribute.StackMapFrameInfo.locals.

Doc from java.lang.classfile.attribute.StackMapFrameInfo.locals.

Returns the expanded local variable types.

Returns:List<StackMapFrameInfo.VerificationTypeInfo>

the expanded local variable types

stackback to summary
public List<StackMapFrameInfo.VerificationTypeInfo> stack()

Record Component getter of stack.

Implements java.lang.classfile.attribute.StackMapFrameInfo.stack.

Doc from java.lang.classfile.attribute.StackMapFrameInfo.stack.

Returns the expanded stack types.

Returns:List<StackMapFrameInfo.VerificationTypeInfo>

the expanded stack types

targetback to summary
public Label target()

Record Component getter of target.

Implements java.lang.classfile.attribute.StackMapFrameInfo.target.

Doc from java.lang.classfile.attribute.StackMapFrameInfo.target.

Returns the frame target label.

Returns:Label

the frame target label

toStringback to summary
public final String toString()

Implements abstract java.lang.Record.toString.

Doc from java.lang.Record.toString.

Returns a string representation of the record. In accordance with the general contract of Object#toString(), the toString method returns a string that "textually represents" this record. The result should be a concise but informative representation that is easy for a person to read.

In addition to this general contract, record classes must further participate in the invariant that any two records which are equal must produce equal strings. This invariant is necessarily relaxed in the rare case where corresponding equal component values might fail to produce equal strings for themselves.

Returns:String

a string representation of the object.

jdk.internal.classfile.impl back to summary

public final Record StackMapDecoder.UninitializedVerificationTypeInfoImpl

extends Record
implements UninitializedVerificationTypeInfo
Class Inheritance
All Implemented Interfaces
java.lang.classfile.attribute.StackMapFrameInfo.UninitializedVerificationTypeInfo, java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo
Record Components
newTarget:Label

Field Summary

Modifier and TypeField and Description
private final Label
newTarget

Record Component accessed by newTarget().

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public final boolean
equals(Object
the reference object with which to compare.
o
)

Implements abstract java.lang.Record.equals.

Indicates whether some other object is "equal to" this one.

public final int
hashCode()

Implements abstract java.lang.Record.hashCode.

Returns a hash code value for the record.

public Label
newTarget()

Record Component getter of newTarget.

Implements java.lang.classfile.attribute.StackMapFrameInfo.UninitializedVerificationTypeInfo.newTarget.

Returns the new instruction position that creates this unitialized object.

public int
public String
toString()

Implements abstract java.lang.Record.toString.

Returns a string representation of the record.

Field Detail

newTargetback to summary
private final Label newTarget

Record Component accessed by newTarget().

Constructor Detail

UninitializedVerificationTypeInfoImplback to summary
public UninitializedVerificationTypeInfoImpl(Label newTarget)

Method Detail

equalsback to summary
public final boolean equals(Object o)

Implements abstract java.lang.Record.equals.

Doc from java.lang.Record.equals.

Indicates whether some other object is "equal to" this one. In addition to the general contract of Object.equals, record classes must further obey the invariant that when a record instance is "copied" by passing the result of the record component accessor methods to the canonical constructor, as follows:

    R copy = new R(r.c1(), r.c2(), ..., r.cn());
then it must be the case that r.equals(copy).
Parameters
o:Object

the reference object with which to compare.

Returns:boolean

true if this record is equal to the argument; false otherwise.

hashCodeback to summary
public final int hashCode()

Implements abstract java.lang.Record.hashCode.

Doc from java.lang.Record.hashCode.

Returns a hash code value for the record. Obeys the general contract of Object.hashCode. For records, hashing behavior is constrained by the refined contract of Record.equals, so that any two records created from the same components must have the same hash code.

Returns:int

a hash code value for this record.

newTargetback to summary
public Label newTarget()

Record Component getter of newTarget.

Implements java.lang.classfile.attribute.StackMapFrameInfo.UninitializedVerificationTypeInfo.newTarget.

Doc from java.lang.classfile.attribute.StackMapFrameInfo.UninitializedVerificationTypeInfo.newTarget.

Returns the new instruction position that creates this unitialized object.

Returns:Label

the new instruction position that creates this unitialized object

tagback to summary
public int tag()

Implements java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo.tag.

Doc from java.lang.classfile.attribute.StackMapFrameInfo.VerificationTypeInfo.tag.

Returns the tag of the type info.

Returns:int

the tag of the type info

Annotations
@Override
toStringback to summary
public String toString()

Implements abstract java.lang.Record.toString.

Doc from java.lang.Record.toString.

Returns a string representation of the record. In accordance with the general contract of Object#toString(), the toString method returns a string that "textually represents" this record. The result should be a concise but informative representation that is easy for a person to read.

In addition to this general contract, record classes must further participate in the invariant that any two records which are equal must produce equal strings. This invariant is necessarily relaxed in the rare case where corresponding equal component values might fail to produce equal strings for themselves.

Returns:String

a string representation of the object.

Annotations
@Override