类的使用
cn.taketoday.bytecode.Label
使用Label的程序包
程序包
说明
CGLIB or ASM other byte code library
Provides core helpers that are not specific to any part of the framework.
-
cn.taketoday.bytecode中Label的使用
声明为Label的cn.taketoday.bytecode中的字段修饰符和类型字段说明private LabelMethodWriter.currentBasicBlockThe current basic block, i.e. the basic block of the last visited instruction.Label[]The end of each local variable range in the current local variable annotation.Label[]The start of each local variable range in the current local variable annotation.Label[]Context.currentMethodLabelsThe labels of the current method, indexed by bytecode offset (only bytecode offsets for which a label is needed have a non null associated Label).(专用程序包) static final LabelLabel.EMPTY_LISTA sentinel element used to indicate the end of a list of labels.final LabelHandler.endPcThe end_pc field of this JVMS exception_table entry.private LabelMethodWriter.firstBasicBlockThe first basic block of the method.final LabelHandler.handlerPcThe handler_pc field of this JVMS exception_table entry.private LabelMethodWriter.lastBasicBlockThe last basic block of the method (in bytecode offset order).(专用程序包) LabelLabel.nextBasicBlockThe successor of this label, in the order they are visited inMethodVisitor.visitLabel(cn.taketoday.bytecode.Label).(专用程序包) LabelLabel.nextListElementThe next element in the list of labels to which this label belongs, or null if it does not belong to any list.Frame.ownerThe basic block to which these input and output stack map frames correspond.final LabelHandler.startPcThe start_pc field of this JVMS exception_table entry.final LabelEdge.successorThe successor block of this control flow graph edge.返回Label的cn.taketoday.bytecode中的方法修饰符和类型方法说明private LabelClassReader.createLabel(int bytecodeOffset, Label[] labels) Creates a label without theFLAG_DEBUG_ONLYflag set, for the given bytecode offset.(专用程序包) final LabelLabel.getCanonicalInstance()Returns the "canonical"Labelinstance corresponding to this label's bytecode offset, if known, otherwise the label itself.protected Label[]Attribute.getLabels()Returns the labels corresponding to this attribute.private LabelLabel.pushSuccessors(Label listOfLabelsToProcess) Adds the successors of this label in the method's control flow graph (except those corresponding to a jsr target, and those already in a list of labels) to the given list of blocks to process, and returns the new list.protected LabelReturns the label corresponding to the given bytecode offset.参数类型为Label的cn.taketoday.bytecode中的方法修饰符和类型方法说明(专用程序包) final voidLabel.addSubroutineRetSuccessors(Label subroutineCaller) Finds the basic blocks that end a subroutine starting with the basic block corresponding to this label and, for each one of them, adds an outgoing edge to the basic block following the given subroutine call.private voidMethodWriter.addSuccessorToCurrentBasicBlock(int info, Label successor) Adds a successor toMethodWriter.currentBasicBlockin the control flow graph.private voidClassReader.createDebugLabel(int bytecodeOffset, Label[] labels) Creates a label with theFLAG_DEBUG_ONLYflag set, if there is no already existing label for the given bytecode offset (otherwise does nothing).private LabelClassReader.createLabel(int bytecodeOffset, Label[] labels) Creates a label without theFLAG_DEBUG_ONLYflag set, for the given bytecode offset.private LabelLabel.pushSuccessors(Label listOfLabelsToProcess) Adds the successors of this label in the method's control flow graph (except those corresponding to a jsr target, and those already in a list of labels) to the given list of blocks to process, and returns the new list.protected AttributeAttribute.read(ClassReader classReader, int offset, int length, char[] charBuffer, int codeAttributeOffset, Label[] labels) Reads aAttribute.typeattribute.private AttributeClassReader.readAttribute(Attribute[] attributePrototypes, String type, int offset, int length, char[] charBuffer, int codeAttributeOffset, Label[] labels) Reads a non standard JVMS 'attribute' structure inClassReader.classFileBuffer.protected LabelReturns the label corresponding to the given bytecode offset.private intClassReader.readVerificationTypeInfo(int verificationTypeInfoOffset, Object[] frame, int index, char[] charBuffer, Label[] labels) Reads a JVMS 'verification_type_info' structure and stores it at the given index in the given array.(专用程序包) static HandlerHandler.removeRange(Handler firstHandler, Label start, Label end) Removes the range between start and end from the Handler list that begins with the given element.voidMethodVisitor.visitJumpInsn(int opcode, Label label) Visits a jump instruction.voidMethodWriter.visitJumpInsn(int opcode, Label label) voidMethodVisitor.visitLabel(Label label) Visits a label.voidMethodWriter.visitLabel(Label label) voidMethodVisitor.visitLineNumber(int line, Label start) Visits a line number declaration.voidMethodWriter.visitLineNumber(int line, Label start) voidMethodVisitor.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) Visits a local variable declaration.voidMethodWriter.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) MethodVisitor.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) Visits an annotation on a local variable type.MethodWriter.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) voidMethodVisitor.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) Visits a LOOKUPSWITCH instruction.voidMethodWriter.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) private voidMethodWriter.visitSwitchInsn(Label dflt, Label[] labels) voidMethodVisitor.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) Visits a TABLESWITCH instruction.voidMethodWriter.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidMethodVisitor.visitTryCatchBlock(Label start, Label end, Label handler, String type) Visits a try catch block.voidMethodWriter.visitTryCatchBlock(Label start, Label end, Label handler, String type) 参数类型为Label的cn.taketoday.bytecode中的构造器限定符构造器说明(专用程序包)CurrentFrame(Label owner) (专用程序包)Constructs a new Edge.(专用程序包)Constructs a new Frame.(专用程序包)Constructs a new Handler from the given one, with a different scope.(专用程序包)Constructs a new Handler. -
cn.taketoday.bytecode.commons中Label的使用
类型参数类型为Label的cn.taketoday.bytecode.commons中的字段修饰符和类型字段说明AdviceAdapter.forwardJumpStackFramesThe stack map frames corresponding to the labels of the forward jumps made *before* the super class constructor has been called (note that the Java Virtual Machine forbids backward jumps before the super class constructor is called).AnalyzerAdapter.labelsThe labels that designate the next instruction to be visited.修饰符和类型方法说明GeneratorAdapter.mark()Marks the current code position with a new label.GeneratorAdapter.newLabel()Constructs a newLabel.参数类型为Label的cn.taketoday.bytecode.commons中的方法修饰符和类型方法说明private voidAdviceAdapter.addForwardJump(Label label) private voidAdviceAdapter.addForwardJumps(Label dflt, Label[] labels) voidGeneratorAdapter.catchException(Label start, Label end, Type exception) Marks the start of an exception handler.voidTableSwitchGenerator.generateCase(int key, Label end) Generates the code for a switch case.voidGenerates the instruction to jump to the given label.voidvoidvoidvoidGenerates the instructions to jump to a label based on the comparison of the top two stack values.voidvoidvoidvoidvoidGenerates the instructions to jump to a label based on the comparison of the top two integer stack values.voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidGenerates the instruction to jump to the given label if the top stack value is not null.voidvoidGenerates the instruction to jump to the given label if the top stack value is null.voidGenerates the instructions to jump to a label based on the comparison of the top integer stack value with zero.voidvoidInstructionAdapter.lookupSwitch(Label dflt, int[] keys, Label[] labels) voidMarks the current code position with the given label.voidprotected AttributeModuleHashesAttribute.read(ClassReader classReader, int offset, int length, char[] charBuffer, int codeAttributeOffset, Label[] labels) protected AttributeModuleResolutionAttribute.read(ClassReader classReader, int offset, int length, char[] charBuffer, int codeOffset, Label[] labels) protected AttributeModuleTargetAttribute.read(ClassReader classReader, int offset, int length, char[] charBuffer, int codeOffset, Label[] labels) voidInstructionAdapter.tableSwitch(int min, int max, Label dflt, Label... labels) voidAdviceAdapter.visitJumpInsn(int opcode, Label label) voidAnalyzerAdapter.visitJumpInsn(int opcode, Label label) voidCodeSizeEvaluator.visitJumpInsn(int opcode, Label label) voidInstructionAdapter.visitJumpInsn(int opcode, Label label) voidJSRInlinerAdapter.visitJumpInsn(int opcode, Label label) voidAdviceAdapter.visitLabel(Label label) voidAnalyzerAdapter.visitLabel(Label label) voidInstructionAdapter.visitLabel(Label label) voidAnalyzerAdapter.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) voidLocalVariablesSorter.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) voidMethodRemapper.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) LocalVariablesSorter.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) MethodRemapper.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) voidAdviceAdapter.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) voidAnalyzerAdapter.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) voidCodeSizeEvaluator.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) voidInstructionAdapter.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) voidAdviceAdapter.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidAnalyzerAdapter.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidCodeSizeEvaluator.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidInstructionAdapter.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidAdviceAdapter.visitTryCatchBlock(Label start, Label end, Label handler, String type) voidMethodRemapper.visitTryCatchBlock(Label start, Label end, Label handler, String type) -
cn.taketoday.bytecode.core中Label的使用
声明为Label的cn.taketoday.bytecode.core中的字段参数类型为Label的cn.taketoday.bytecode.core中的方法修饰符和类型方法说明private static voidEmitUtils.memberHelperSize(CodeEmitter e, List members, ObjectSwitchCallback callback, EmitUtils.ParameterTyper typer, Label def, Label end) private static voidEmitUtils.memberHelperType(CodeEmitter e, List<MethodInfo> members, ObjectSwitchCallback callback, EmitUtils.ParameterTyper typer, Label def, Label end, BitSet checked) static voidEmitUtils.notEquals(CodeEmitter e, Type type, Label notEquals, CustomizerRegistry registry) Branches to the specified label if the top two items on the stack are not equal.private static voidEmitUtils.notEqualsHelper(CodeEmitter e, Type type, Label notEquals, CustomizerRegistry registry, ProcessArrayCallback callback) private static voidEmitUtils.nullcmp(CodeEmitter e, Label oneNull, Label bothNull) If both objects on the top of the stack are non-null, does nothing.voidObjectSwitchCallback.processCase(Object key, Label end) private static voidEmitUtils.stringSwitchHelper(CodeEmitter e, List strings, ObjectSwitchCallback callback, Label def, Label end, int index) -
cn.taketoday.bytecode.reflect中Label的使用
参数类型为Label的cn.taketoday.bytecode.reflect中的方法 -
cn.taketoday.bytecode.transform中Label的使用
参数类型为Label的cn.taketoday.bytecode.transform中的方法修饰符和类型方法说明voidMethodVisitorTee.visitJumpInsn(int opcode, Label label) voidMethodVisitorTee.visitLabel(Label label) voidMethodVisitorTee.visitLineNumber(int line, Label start) voidMethodVisitorTee.visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) MethodVisitorTee.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String desc, boolean visible) voidMethodVisitorTee.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) voidMethodVisitorTee.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidMethodVisitorTee.visitTryCatchBlock(Label start, Label end, Label handler, String type) -
cn.taketoday.bytecode.tree中Label的使用
声明为Label的cn.taketoday.bytecode.tree中的字段参数类型为Label的cn.taketoday.bytecode.tree中的方法修饰符和类型方法说明protected LabelNodeMethodNode.getLabelNode(Label label) Returns the LabelNode corresponding to the given Label.private LabelNode[]MethodNode.getLabelNodes(Label[] labels) voidMethodNode.visitJumpInsn(int opcode, Label label) voidMethodNode.visitLabel(Label label) voidMethodNode.visitLineNumber(int line, Label start) voidMethodNode.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) MethodNode.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) voidMethodNode.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) voidMethodNode.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidMethodNode.visitTryCatchBlock(Label start, Label end, Label handler, String type) 参数类型为Label的cn.taketoday.bytecode.tree中的构造器 -
cn.taketoday.bytecode.util中Label的使用
类型参数类型为Label的cn.taketoday.bytecode.util中的字段修饰符和类型字段说明CheckMethodAdapter.handlersThe exception handler ranges.CheckClassAdapter.labelInsnIndicesThe index of the instruction designated by each visited label so far.CheckMethodAdapter.labelInsnIndicesThe index of the instruction designated by each visited label.ASMifier.labelNamesThe name of the Label variables in the produced code.Textifier.labelNamesThe names of the labels.CheckMethodAdapter.referencedLabelsThe labels referenced by the visited method.参数类型为Label的cn.taketoday.bytecode.util中的方法修饰符和类型方法说明protected voidASMifier.appendLabel(Label label) Appends the name of the given label toPrinter.stringBuilder.protected voidTextifier.appendLabel(Label label) Appends the name of the given label toPrinter.stringBuilder.private voidCheckMethodAdapter.checkLabel(Label label, boolean checkVisited, String message) Checks that the given label is not null.protected voidASMifier.declareLabel(Label label) Appends a declaration of the given label toPrinter.stringBuilder.voidASMifier.visitJumpInsn(int opcode, Label label) voidCheckMethodAdapter.visitJumpInsn(int opcode, Label label) abstract voidPrinter.visitJumpInsn(int opcode, Label label) Method jump instruction.voidTextifier.visitJumpInsn(int opcode, Label label) voidTraceMethodVisitor.visitJumpInsn(int opcode, Label label) voidASMifier.visitLabel(Label label) voidCheckMethodAdapter.visitLabel(Label label) abstract voidPrinter.visitLabel(Label label) Method label.voidTextifier.visitLabel(Label label) voidTraceMethodVisitor.visitLabel(Label label) voidASMifier.visitLineNumber(int line, Label start) voidCheckMethodAdapter.visitLineNumber(int line, Label start) abstract voidPrinter.visitLineNumber(int line, Label start) Method debug info.voidTextifier.visitLineNumber(int line, Label start) voidTraceMethodVisitor.visitLineNumber(int line, Label start) voidASMifier.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) voidCheckMethodAdapter.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) abstract voidPrinter.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) Method debug info.voidTextifier.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) voidTraceMethodVisitor.visitLocalVariable(String name, String descriptor, String signature, Label start, Label end, int index) ASMifier.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) CheckMethodAdapter.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) Printer.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) Local variable type annotation.Textifier.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) TraceMethodVisitor.visitLocalVariableAnnotation(int typeRef, TypePath typePath, Label[] start, Label[] end, int[] index, String descriptor, boolean visible) voidASMifier.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) voidCheckMethodAdapter.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) abstract voidPrinter.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) Method instruction.voidTextifier.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) voidTraceMethodVisitor.visitLookupSwitchInsn(Label dflt, int[] keys, Label[] labels) voidASMifier.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidCheckMethodAdapter.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) abstract voidPrinter.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) Method instruction.voidTextifier.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidTraceMethodVisitor.visitTableSwitchInsn(int min, int max, Label dflt, Label... labels) voidASMifier.visitTryCatchBlock(Label start, Label end, Label handler, String type) voidCheckMethodAdapter.visitTryCatchBlock(Label start, Label end, Label handler, String type) abstract voidPrinter.visitTryCatchBlock(Label start, Label end, Label handler, String type) Method exception handler.voidTextifier.visitTryCatchBlock(Label start, Label end, Label handler, String type) voidTraceMethodVisitor.visitTryCatchBlock(Label start, Label end, Label handler, String type) 类型变量类型为Label的cn.taketoday.bytecode.util中的方法参数修饰符和类型方法说明voidASMifierSupport.asmify(StringBuilder outputBuilder, String visitorVariableName, Map<Label, String> labelNames) Generates the ASM code to create an attribute equal to this attribute.voidTextifierSupport.textify(StringBuilder outputBuilder, Map<Label, String> labelNames) Generates a human readable representation of this attribute.类型变量类型为Label的cn.taketoday.bytecode.util中的构造器参数限定符构造器说明CheckMethodAdapter(int access, String name, String descriptor, MethodVisitor methodVisitor, Map<Label, Integer> labelInsnIndices) Constructs a newCheckMethodAdapterobject.CheckMethodAdapter(MethodVisitor methodVisitor, Map<Label, Integer> labelInsnIndices) Constructs a newCheckMethodAdapterobject. -
cn.taketoday.core中Label的使用
参数类型为Label的cn.taketoday.core中的方法