Example #1
0
        LastValidRids UpdateLastValidRids(DynamicModuleData data, CorModuleDef module)
        {
            var old = data.LastValidRids;

            // Linear search but shouldn't be a problem except the first time if we load a big file

            for (; ; data.LastValidRids.TypeDefRid++)
            {
                if (!module.IsValidToken(new MDToken(Table.TypeDef, data.LastValidRids.TypeDefRid + 1).Raw))
                {
                    break;
                }
            }
            for (; ; data.LastValidRids.FieldRid++)
            {
                if (!module.IsValidToken(new MDToken(Table.Field, data.LastValidRids.FieldRid + 1).Raw))
                {
                    break;
                }
            }
            for (; ; data.LastValidRids.MethodRid++)
            {
                if (!module.IsValidToken(new MDToken(Table.Method, data.LastValidRids.MethodRid + 1).Raw))
                {
                    break;
                }
            }
            for (; ; data.LastValidRids.ParamRid++)
            {
                if (!module.IsValidToken(new MDToken(Table.Param, data.LastValidRids.ParamRid + 1).Raw))
                {
                    break;
                }
            }
            for (; ; data.LastValidRids.EventRid++)
            {
                if (!module.IsValidToken(new MDToken(Table.Event, data.LastValidRids.EventRid + 1).Raw))
                {
                    break;
                }
            }
            for (; ; data.LastValidRids.PropertyRid++)
            {
                if (!module.IsValidToken(new MDToken(Table.Property, data.LastValidRids.PropertyRid + 1).Raw))
                {
                    break;
                }
            }
            for (; ; data.LastValidRids.GenericParamRid++)
            {
                if (!module.IsValidToken(new MDToken(Table.GenericParam, data.LastValidRids.GenericParamRid + 1).Raw))
                {
                    break;
                }
            }
            for (; ; data.LastValidRids.GenericParamConstraintRid++)
            {
                if (!module.IsValidToken(new MDToken(Table.GenericParamConstraint, data.LastValidRids.GenericParamConstraintRid + 1).Raw))
                {
                    break;
                }
            }

            return(old);
        }