类的使用
cn.taketoday.bytecode.tree.analysis.Frame
使用Frame的程序包
-
cn.taketoday.bytecode.tree.analysis中Frame的使用
修饰符和类型字段说明Analyzer.framesThe execution stack frames of the currently analyzed method (one per instruction index).修饰符和类型方法说明Analyzer.analyze(String owner, MethodNode method) Analyzes the given method.Analyzer.analyzeAndComputeMaxs(String owner, MethodNode method) Analyzes the given method and computes and sets its maximum stack size and maximum number of local variables.Analyzer.computeInitialFrame(String owner, MethodNode method) Computes the initial execution stack frame of the given method.Analyzer.getFrames()Returns the symbolic execution stack frame for each instruction of the last analyzed method.Copies the state of the given frame into this frame.Analyzer.newFrame(int numLocals, int numStack) Constructs a new frame with the given size.Constructs a copy of the given frame.参数类型为Frame的cn.taketoday.bytecode.tree.analysis中的方法修饰符和类型方法说明private static intAnalyzer.computeMaxStack(Frame<?>[] frames) Computes and returns the maximum stack size of a method, given its stack map frames.Copies the state of the given frame into this frame.private voidAnalyzer.merge(int insnIndex, Frame<V> frameBeforeJsr, Frame<V> frameAfterRet, Subroutine subroutineBeforeJsr, boolean[] localsUsed) Merges the given frame and subroutine into the frame and subroutines at the given instruction index (case of a RET instruction).private voidAnalyzer.merge(int insnIndex, Frame<V> frame, Subroutine subroutine) Merges the given frame and subroutine into the frame and subroutines at the given instruction index.booleanMerges the given frame into this frame (case of a subroutine).booleanFrame.merge(Frame<? extends V> frame, Interpreter<V> interpreter) Merges the given frame into this frame.Interpreter.newExceptionValue(TryCatchBlockNode tryCatchBlockNode, Frame<V> handlerFrame, Type exceptionType) Creates a new value that represents the given exception type.Constructs a copy of the given frame.参数类型为Frame的cn.taketoday.bytecode.tree.analysis中的构造器 -
cn.taketoday.bytecode.util中Frame的使用
修饰符和类型方法说明CheckFrameAnalyzer.expandFrame(String owner, Frame<V> previousFrame, FrameNode frameNode) Returns the expanded representation of the givenFrameNode.参数类型为Frame的cn.taketoday.bytecode.util中的方法修饰符和类型方法说明private voidCheckFrameAnalyzer.checkFrame(int insnIndex, Frame<V> frame, boolean requireFrame) Checks that the given frame is compatible with the frame at the given instruction index, if any.private StringCheckFrameAnalyzer.checkMerge(Frame<V> srcFrame, Frame<V> dstFrame) Checks that merging the two given frames would not produce any change, i.e. that the types in the source frame are sub types of the corresponding types in the destination frame.CheckFrameAnalyzer.expandFrame(String owner, Frame<V> previousFrame, FrameNode frameNode) Returns the expanded representation of the givenFrameNode.private voidCheckFrameAnalyzer.expandFrames(String owner, MethodNode method, Frame<V> initialFrame) Expands theFrameNode"instructions" of the given method intoFrameobjects and stores them at the corresponding indices of theAnalyzer.framesarray.