Assembly.Metro.Controls.PageTemplates.Games.Components.MetaData.MetaReader.VisitReflexive C# (CSharp) Method

VisitReflexive() public method

public VisitReflexive ( Assembly.Metro.Controls.PageTemplates.Games.Components.MetaData.ReflexiveData field ) : void
field Assembly.Metro.Controls.PageTemplates.Games.Components.MetaData.ReflexiveData
return void
        public void VisitReflexive(ReflexiveData field)
        {
            SeekToOffset(field.Offset);
            StructureValueCollection values = StructureReader.ReadStructure(_reader, _tagBlockLayout);
            var length = (int) values.GetInteger("entry count");
            uint pointer = values.GetInteger("pointer");

            // Make sure the pointer looks valid
            if (length < 0 || !_cache.MetaArea.ContainsBlockPointer(pointer, (int) (length*field.EntrySize)))
            {
                length = 0;
                pointer = 0;
            }

            field.Length = length;
            if (pointer != field.FirstEntryAddress)
                field.FirstEntryAddress = pointer;
        }