private List<SwiftStructureAddress> parsePointerTable(SwiftSection section, BinaryReader reader)
			throws CancelledException {
		final int POINTER_SIZE = 4;
		List<SwiftStructureAddress> result = new ArrayList<>();
		try {
			for (MemoryBlock block : SwiftUtils.getSwiftBlocks(section, program)) {
				Address blockAddr = block.getStart();
				for (int i = 0; i < block.getSize(); i += POINTER_SIZE) {
					monitor.checkCancelled();
					reader.setPointerIndex(blockAddr.getOffset() + i);
					Address pointerAddr = blockAddr.add(i);
					int offset = reader.readInt(pointerAddr.getOffset());
					if (offset != 0) {
						Address structAddr = pointerAddr.add(offset);
						result.add(new SwiftStructureAddress(structAddr, pointerAddr));
					}
				}
			}
		}
		catch (IOException e) {
			log("Failed to parse Swift struction pointers from section '" + section + "'");
		}
		return result;
	}
Parses a table of pointers to {@link SwiftTypeMetadataStructure}s found in the given section

@param section The {@link SwiftSection} that contains the pointer table
@param reader A {@link BinaryReader}
@return A {@link List} of {@link SwiftStructureAddress}s
@throws CancelledException if the user cancelled the operation
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/swift/SwiftTypeMetadata.java