public void init(TaskMonitor monitor) throws IOException {
		GoModuledata firstModule = findFirstModuledata(monitor);
		if (firstModule != null) {
			GoPcHeader pcHeader = firstModule.getPcHeader();
			if (pcHeader != null) {
				this.minLC = pcHeader.getMinLC();
				if (pcHeader.getPtrSize() != ptrSize) {
					throw new IOException(
						"Mismatched ptrSize: %d vs %d".formatted(pcHeader.getPtrSize(), ptrSize));
				}
				if (pcHeader.getGoVersion().isInvalid()) {
					// we can get here if the firstmoduledata was located via symbolname instead of
					// relying on bootstraping via the pcheader
					Msg.warn(this,
						"Unknown golang pcheader magic value: 0x%x".formatted(pcHeader.getMagic()));
				}
			}
			addModule(firstModule);
		}
		initFuncdata();
		goTypes.init(monitor);
	}
Finishes making this instance ready to be used.

@param monitor {@link TaskMonitor}
@throws IOException if error reading data
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/golang/rtti/GoRttiMapper.java