static void markupOatClassOffsetsPointer(Class<?> caller, Address address, DexHeader dexHeader,
			OatHeader oatHeader, Program program, TaskMonitor monitor, MessageLog log) {

		if (dexHeader == null) {
			log.appendMsg(caller.getSimpleName() +
				" - markupOatClassOffsetsPointer() - no dex header, skipping...");
			return;
		}

		monitor.setMessage("Processing Oat Class Offset Pointers...");

		int size = dexHeader.getClassDefsIdsSize();

		size *= 2;

		size = getNextPowerOfTwo(size);

		DataType dword = new DWordDataType();

		// size *= dword.getLength( );

		ArrayDataType array = new ArrayDataType(dword, size, dword.getLength());
		try {
			program.getListing().createData(address, array);
		}
		catch (Exception e) {
			log.appendException(e);
		}
	}
Table size is determined by the DexHeader's "classDefsIdsSize" field.
@param caller the caller class
@param address the address to perform markup
@param dexHeader the dex header
@param oatHeader the oat header
@param program the program to markup
@param monitor the task monitor for canceling
@param log the message log for logging messages
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/android/oat/oatdexfile/OatDexFileUtilities.java