public void visitInsn(final int opcode) {
		// adds the instruction to the bytecode of the method
		code.putByte(opcode);
		// update currentBlock
		// Label currentBlock = this.currentBlock;
		if (currentBlock != null) {
			if (compute == FRAMES) {
				currentBlock.frame.execute(opcode, 0, null, null);
			} else {
				// updates current and max stack sizes
				int size = stackSize + Frame.SIZE[opcode];
				if (size > maxStackSize) {
					maxStackSize = size;
				}
				stackSize = size;
			}
			// if opcode == ATHROW or xRETURN, ends current block (no successor)
			if ((opcode >= Opcodes.IRETURN && opcode <= Opcodes.RETURN)
					|| opcode == Opcodes.ATHROW) {
				noSuccessor();
			}
		}
	}