| 69 | DO_CASES |
| 70 | { |
| 71 | CASE(JUMPDEST) |
| 72 | { |
| 73 | // if frame size is set then we have been here before |
| 74 | ptrdiff_t frameSize = m_frameSize[m_PC]; |
| 75 | if (0 <= frameSize) |
| 76 | { |
| 77 | // check for constant frame size |
| 78 | if (stackSize() != frameSize) |
| 79 | throwBadStack(stackSize(), frameSize, 0); |
| 80 | |
| 81 | // return to break cycle in control flow graph |
| 82 | return; |
| 83 | } |
| 84 | // set frame size to check later |
| 85 | m_frameSize[m_PC] = stackSize(); |
| 86 | ++m_PC; |
| 87 | } |
| 88 | NEXT |
| 89 | |
| 90 | CASE(JUMPTO) |