public bool ReadObject(out object @object)
{
var id = (int)_reader.ReadVUInt32();
if (id == 0)
{
@object = null;
return false;
}
id--;
var o = RetriveObj(id);
if (o != null)
{
var mp = o as IMemorizedPosition;
if (mp == null)
{
@object = o;
return false;
}
PushReturningPosition(((ICanMemorizePosition)_reader).MemorizeCurrentPosition());
mp.Restore();
}
else
{
PushReturningPosition(null);
}
_lastIdOfObj = id;
@object = null;
return true;
}