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