Example #1
0
        protected override ImplMap GetImplMap_NoLock()
        {
            var  mdi   = readerModule.MetaDataImport;
            uint token = OriginalToken.Raw;

            var name = MDAPI.GetPinvokeMapName(mdi, token);

            if (name == null)
            {
                return(null);
            }
            PInvokeAttributes attrs;
            uint moduleToken;

            if (!MDAPI.GetPinvokeMapProps(mdi, token, out attrs, out moduleToken))
            {
                return(null);
            }
            var mr = readerModule.ResolveToken(moduleToken) as ModuleRef;

            if (mr == null)
            {
                return(null);
            }

            return(readerModule.UpdateRowId(new ImplMapUser(mr, name, attrs)));
        }
Example #2
0
        protected override Constant GetConstant_NoLock()
        {
            var  mdi   = readerModule.MetaDataImport;
            uint token = OriginalToken.Raw;

            var c = MDAPI.GetFieldConstant(mdi, token, out var etype);

            if (etype == CorElementType.End)
            {
                return(null);
            }
            return(readerModule.UpdateRowId(new ConstantUser(c, (ElementType)etype)));
        }
Example #3
0
        unsafe void InitClassLayout_NoLock()
        {
            var  mdi   = readerModule.MetaDataImport;
            uint token = OriginalToken.Raw;

            bool b = MDAPI.GetClassLayout(mdi, token, out ushort packingSize, out uint classSize);

            if (!b)
            {
                ClassLayout = null;
            }
            else
            {
                ClassLayout = readerModule.UpdateRowId(new ClassLayoutUser(packingSize, classSize));
            }
        }