private void addSources(TaskMonitor monitor, List<Address> entryPtList,
			LinkedList<Address> todoList, CodeBlock bblock) throws CancelledException {
		CodeBlockReferenceIterator srcIter = bblock.getSources(monitor);
		boolean isSource = true;
		boolean isEntry = false;
		while (srcIter.hasNext()) {
			isSource = false;
			CodeBlockReference srcRef = srcIter.next();
			FlowType refFlowType = srcRef.getFlowType();
			if (refFlowType.isJump() || refFlowType.isFallthrough()) {
				// Add Jump and Fall-through sources to the todoList
				todoList.addLast(srcRef.getSourceAddress());
			}
			else if (refFlowType.isCall()) {
				// Basic block is a subroutine entry point
				isEntry = true;
			}
		}
		if (isSource || isEntry) {
			entryPtList.add(bblock.getMinAddress());
		}
	}
Get the M-Model subroutine address set which contains the specified address.
This method also identifies the entry points and caches the resulting CodeBlock.

@param   addr    Address inside the subroutine that we are seeking
@param monitor task monitor which allows user to cancel operation.
@return          The <CODE>CodeBlock</CODE> for a
                 <CODE>MultEntSubModel</CODE> Subroutine.
					Null is returned if there is no instruction at addr.
@throws CancelledException if the monitor cancels the operation.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/block/MultEntSubModel.java