private int readFrameType(final Object[] frame, final int index, int v,
			final char[] buf, final Label[] labels) {
		int type = b[v++] & 0xFF;
		switch (type) {
		case 0:
			frame[index] = Opcodes.TOP;
			break;
		case 1:
			frame[index] = Opcodes.INTEGER;
			break;
		case 2:
			frame[index] = Opcodes.FLOAT;
			break;
		case 3:
			frame[index] = Opcodes.DOUBLE;
			break;
		case 4:
			frame[index] = Opcodes.LONG;
			break;
		case 5:
			frame[index] = Opcodes.NULL;
			break;
		case 6:
			frame[index] = Opcodes.UNINITIALIZED_THIS;
			break;
		case 7: // Object
			frame[index] = readClass(v, buf);
			v += 2;
			break;
		default: // Uninitialized
			frame[index] = readLabel(readUnsignedShort(v), labels);
			v += 2;
		}
		return v;
	}