static public FunctionDescription restoreXml(XmlPullParser parser,
			LSHVectorFactory vectorFactory, DescriptionManager man, ExecutableRecord erec)
			throws LSHException {
		int count = 0;
		XmlElement el = parser.start("fdesc");
		String fname = el.getAttribute("name");
		String addrString = el.getAttribute("addr");
		String sigdupstr = el.getAttribute("sigdup");
		long address = -1;			// Default value if no attribute present
		if (addrString != null) {
			address = SpecXmlUtils.decodeLong(addrString);
		}
		if (sigdupstr != null) {
			count = SpecXmlUtils.decodeInt(sigdupstr);
		}
		FunctionDescription fdesc = man.newFunctionDescription(fname, address, erec);
		if (parser.peek().isStart()) {
			if (parser.peek().getName().equals("lshcosine")) {
				SignatureRecord.restoreXml(parser, vectorFactory, man, fdesc, count);
			}
			while (parser.peek().isStart()) {
				String nm = parser.peek().getName();
				if (nm.equals("flags")) {
					parser.start();
					int flags = SpecXmlUtils.decodeInt(parser.end().getText());
					fdesc.flags = flags;
				}
				else { // Assume it is a callgraph entry
					CallgraphEntry.restoreXml(parser, man, fdesc);
				}
			}
		}
		parser.end();
		return fdesc;
	}
Update the boolean fields in -res- to true, for every field in -this- that needs to be updated from -fromDB-
@param res stores the boolean results for which fields to update
@param fromDB is the metadata to compare with -this- to decided if updates are necessary
@return true if one or more updates is necessary
Ghidra/Features/BSim/src/main/java/ghidra/features/bsim/query/description/FunctionDescription.java