private void precalculateStreamLocations() {
		streamNumber = moduleInformation.getStreamNumberDebugInformation();
		if (streamNumber == MsfStream.NIL_STREAM_NUMBER) {
			return;
		}
		stream = pdb.getMsf().getStream(streamNumber);
		if (stream == null) {
			return;
		}
		int length = stream.getLength();

		sizeSymbols = moduleInformation.getSizeLocalSymbolsDebugInformation();
		sizeLines = moduleInformation.getSizeLineNumberDebugInformation();
		sizeC13Lines = moduleInformation.getSizeC13StyleLineNumberInformation();

		offsetSymbols = 0;
		offsetLines = sizeSymbols;
		offsetC13Lines = offsetLines + sizeLines;
		offsetGlobalRefs = offsetC13Lines + sizeC13Lines;
		// Note that sizeGlobalRefs includes the size field found within the stream and the field
		// should have a value that is 4 less than this size here.  Note that if additional
		// data is added to this stream by MSFT after these global at a future date, then this
		// calculation will not be correct.
		sizeGlobalRefs = length - offsetGlobalRefs;
	}
<B> Note that this class is new, in-progress creation, being designed as a better interface for
getting information for any particular module (stream) in a more random-access manner.</B>
<P>
This class represents Module Stream data of a PDB file.  This is different from the
{@link ModuleInformation} and children classes that are parsed from the DBI stream,
which describes (or is control information for) what is the stream from which this
{@link Module} is parsed.  Note that we use the {@link ModuleInformation} as one of
the construction parameter to this class.
<P>
This class is only suitable for reading; not for writing or modifying a PDB.
<P>
We have intended to implement according to the Microsoft PDB API (source); see the API for
truth.
Ghidra/Features/PDB/src/main/java/ghidra/app/util/bin/format/pdb2/pdbreader/Module.java