private Varnode[] readVarnodes(XmlPullParser parser, CompilerSpec cspec)
			throws XmlParseException {
		parser.start();
		ArrayList<Varnode> varnodeList = new ArrayList<>();
		while (parser.peek().isStart()) {
			XmlElement el = parser.start();
			AddressXML ourAddress = AddressXML.restoreXml(el, cspec);
			if (ourAddress.getJoinRecord() != null) {
				throw new XmlParseException(
					"No \"join\" in <unaffected>, <killedbycall>, or <likelytrash>");
			}
			varnodeList.add(ourAddress.getVarnode());
			parser.end(el);
		}
		parser.end();
		Varnode[] res = new Varnode[varnodeList.size()];
		varnodeList.toArray(res);
		return res;
	}
Encode this object to an output stream
@param encoder is the stream encoder
@param injectLibrary is a library containing any inject payloads associated with the model
@throws IOException for errors writing to the underlying stream
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/PrototypeModel.java