Lines Matching refs:frame
78 * Frame has exactly the same locals as the previous stack map frame and
84 * Frame has exactly the same locals as the previous stack map frame and
95 * Frame has exactly the same locals as the previous stack map frame and
102 * frame, except that the k last locals are absent. The value of k is given
108 * Frame has exactly the same locals as the previous stack map frame and
115 * frame, except that k additional locals are defined. The value of k is
121 * Full frame
277 * The offset of the last frame that was written in the StackMapTable
283 * The last frame that was written in the StackMapTable attribute.
285 * @see #frame
290 * Index of the next element to be added in {@link #frame}.
295 * The current stack map frame. The first element contains the offset of the
296 * instruction to which the frame corresponds, the second element is the
299 * values. In summary frame[0] = offset, frame[1] = nLocal, frame[2] =
300 * nStack, frame[3] = nLocal. All types are encoded as integers, with the
303 private int[] frame;
585 frame[frameIndex++] = Frame.OBJECT
588 frame[frameIndex++] = ((Integer) local[i]).intValue();
590 frame[frameIndex++] = Frame.UNINITIALIZED
597 frame[frameIndex++] = Frame.OBJECT
600 frame[frameIndex++] = ((Integer) stack[i]).intValue();
602 frame[frameIndex++] = Frame.UNINITIALIZED
671 currentBlock.frame.execute(opcode, 0, null, null);
693 currentBlock.frame.execute(opcode, operand, null, null);
716 currentBlock.frame.execute(opcode, var, null, null);
775 currentBlock.frame.execute(opcode, code.length, cw, i);
800 currentBlock.frame.execute(opcode, 0, cw, i);
843 currentBlock.frame.execute(opcode, 0, cw, i);
891 currentBlock.frame.execute(opcode, 0, null, null);
989 label.frame = currentBlock.frame;
997 if (label.frame == null) {
998 label.frame = new Frame();
999 label.frame.owner = label;
1005 label.frame = previousBlock.frame;
1036 currentBlock.frame.execute(Opcodes.LDC, 0, cw, i);
1067 currentBlock.frame.execute(Opcodes.IINC, var, null, null);
1129 currentBlock.frame.execute(Opcodes.LOOKUPSWITCH, 0, null, null);
1156 currentBlock.frame.execute(Opcodes.MULTIANEWARRAY, dims, cw, i);
1265 // creates and visits the first (implicit) frame
1266 Frame f = labels.frame;
1284 f = l.frame;
1300 boolean change = f.merge(cw, n.frame, e.info);
1315 f = l.frame;
1331 // emits a frame for this unreachable block
1333 frame[frameIndex++] = Frame.OBJECT
1531 l.frame = new Frame();
1532 l.frame.owner = l;
1547 * Visits a frame that has been computed from scratch.
1549 * @param f the frame that must be visited.
1581 // visits the frame and its content
1585 frame[frameIndex++] = t;
1592 frame[frameIndex++] = t;
1601 * Starts the visit of a stack map frame.
1603 * @param offset the offset of the instruction to which the frame
1605 * @param nLocal the number of local variables in the frame.
1606 * @param nStack the number of stack elements in the frame.
1611 if (frame == null || frame.length < n) {
1612 frame = new int[n];
1614 frame[0] = offset;
1615 frame[1] = nLocal;
1616 frame[2] = nStack;
1621 * Checks if the visit of the current frame {@link #frame} is finished, and
1625 if (previousFrame != null) { // do not write the first frame
1632 previousFrame = frame;
1633 frame = null;
1637 * Compress and writes the current frame {@link #frame} in the StackMapTable
1641 int clocalsSize = frame[1];
1642 int cstackSize = frame[2];
1644 stackMap.putShort(frame[0]).putShort(clocalsSize);
1655 delta = frame[0];
1657 delta = frame[0] - previousFrame[0] - 1;
1686 if (frame[l] != previousFrame[l]) {
1728 * Writes some types of the current frame {@link #frame} into the
1733 * @param start index of the first type in {@link #frame} to write.
1734 * @param end index of last type in {@link #frame} to write (exclusive).
1738 int t = frame[i];
2426 frame = null;
2443 visitFrame(l.frame);
2449 * Resizing an existing stack map frame table is really hard.