Pushes the given abstract type on the output frame stack. @param abstractType an abstract type.
(final int abstractType)
| 513 | * @param abstractType an abstract type. |
| 514 | */ |
| 515 | private void push(final int abstractType) { |
| 516 | // Create and/or resize the output stack array if necessary. |
| 517 | if (outputStack == null) { |
| 518 | outputStack = new int[10]; |
| 519 | } |
| 520 | int outputStackLength = outputStack.length; |
| 521 | if (outputStackTop >= outputStackLength) { |
| 522 | int[] newOutputStack = new int[Math.max(outputStackTop + 1, 2 * outputStackLength)]; |
| 523 | System.arraycopy(outputStack, 0, newOutputStack, 0, outputStackLength); |
| 524 | outputStack = newOutputStack; |
| 525 | } |
| 526 | // Pushes the abstract type on the output stack. |
| 527 | outputStack[outputStackTop++] = abstractType; |
| 528 | // Updates the maximum size reached by the output stack, if needed (note that this size is |
| 529 | // relative to the input stack size, which is not known yet). |
| 530 | short outputStackSize = (short) (outputStackStart + outputStackTop); |
| 531 | if (outputStackSize > owner.outputStackMax) { |
| 532 | owner.outputStackMax = outputStackSize; |
| 533 | } |
| 534 | } |
| 535 | |
| 536 | /** |
| 537 | * Pushes the abstract type corresponding to the given descriptor on the output frame stack. |
no test coverage detected