@Override
	protected DataTypeComponent[] getAllComponents(MemBuffer buf) {
		try {
			int n = (buf.getByte(0) & 0xff) * 16 + (buf.getByte(1) & 0xff) + 1;
			DataTypeComponent[] comps = new DataTypeComponent[n];
			comps[0] = new ReadOnlyDataTypeComponent(new WordDataType(), this, 2, 0, 0, "Size", "");
			int countSize = comps[0].getLength();
			int offset = countSize;
			MemoryBufferImpl newBuf = new MemoryBufferImpl(buf.getMemory(), buf.getAddress());
			newBuf.advance(countSize);
			for (int i = 1; i < n; i++) {
				DataTypeInstance dti =
					DataTypeInstance.getDataTypeInstance(repeatDataType, newBuf, false);
				if (dti == null) {
					Msg.error(this, "ERROR: problem with data at " + newBuf.getAddress());
					return null;
				}
				int len = dti.getLength();
				comps[i] = new ReadOnlyDataTypeComponent(dti.getDataType(), this, len, i, offset);
				offset += len;
				newBuf.advance(len);
			}
			return comps;

		}
		catch (AddressOverflowException | AddressOutOfBoundsException | MemoryAccessException e) {
			Msg.error(this, "ERROR: problem with data at " + buf.getAddress());
		}
		return null;
	}
@see ghidra.program.model.data.DynamicDataType#getAllComponents(ghidra.program.model.mem.MemBuffer)
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/RepeatCountDataType.java