public DataStructure TightUnmarshalNestedObject(BinaryReader dis, BooleanStream bs)
{
if (bs.ReadBoolean())
{
byte dataType = dis.ReadByte();
BaseDataStreamMarshaller dsm = GetDataStreamMarshallerForType(dataType);
DataStructure data = dsm.CreateObject();
if (data.IsMarshallAware() && bs.ReadBoolean())
{
dis.ReadInt32();
dis.ReadByte();
BooleanStream bs2 = new BooleanStream();
bs2.Unmarshal(dis);
dsm.TightUnmarshal(this, data, dis, bs2);
}
else
{
dsm.TightUnmarshal(this, data, dis, bs);
}
return(data);
}
return(null);
}