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;
}