public static SignatureHelper GetSigHelper(MdSigCallingConvention conv, ModuleBuilder mod = null) { var sig = (SignatureHelper)FormatterServices.GetUninitializedObject(sigType); Sig_Init(sig, mod); sig.AddData((byte)conv); return(sig); }
private SignatureHelper(Module mod, MdSigCallingConvention callingConvention, int cGenericParameters, Type returnType, Type[] requiredCustomModifiers, Type[] optionalCustomModifiers) { // Use this constructor to instantiate a any signatures that will require a return type. Init(mod, callingConvention, cGenericParameters); if (callingConvention == MdSigCallingConvention.Field) { throw new ArgumentException(Environment.GetResourceString("Argument_BadFieldSig")); } AddOneArgTypeHelper(returnType, requiredCustomModifiers, optionalCustomModifiers); }
private SignatureHelper( Module?mod, MdSigCallingConvention callingConvention, Type returnType, Type[]?requiredCustomModifiers, Type[]?optionalCustomModifiers ) : this( mod, callingConvention, 0, returnType, requiredCustomModifiers, optionalCustomModifiers ) { }
private void Init(Module mod, MdSigCallingConvention callingConvention, int cGenericParam) { Init(mod); AddData((byte)callingConvention); if (callingConvention == MdSigCallingConvention.Field || callingConvention == MdSigCallingConvention.GenericInst) { m_sizeLoc = NO_SIZE_IN_SIG; } else { if (cGenericParam > 0) { AddData(cGenericParam); } m_sizeLoc = m_currSig++; } }
public static SignatureHelper GetPropertySigHelper(Module?mod, CallingConventions callingConvention, Type?returnType, Type[]?requiredReturnTypeCustomModifiers, Type[]?optionalReturnTypeCustomModifiers, Type[]?parameterTypes, Type[][]?requiredParameterTypeCustomModifiers, Type[][]?optionalParameterTypeCustomModifiers) { SignatureHelper sigHelp; returnType ??= typeof(void); MdSigCallingConvention intCall = MdSigCallingConvention.Property; if ((callingConvention & CallingConventions.HasThis) == CallingConventions.HasThis) { intCall |= MdSigCallingConvention.HasThis; } sigHelp = new SignatureHelper(mod, intCall, returnType, requiredReturnTypeCustomModifiers, optionalReturnTypeCustomModifiers); sigHelp.AddArguments(parameterTypes, requiredParameterTypeCustomModifiers, optionalParameterTypeCustomModifiers); return(sigHelp); }
private static MdSigCallingConvention ConvertCallConv(CallingConventions managed, CallingConvention unmanaged) { MdSigCallingConvention callConv = 0; if (unmanaged != 0) { callConv = (MdSigCallingConvention)((byte)unmanaged - 1); } switch (managed) { case CallingConventions.HasThis: callConv |= MdSigCallingConvention.HasThis; break; case CallingConventions.ExplicitThis: callConv |= MdSigCallingConvention.ExplicitThis; break; case CallingConventions.VarArgs: callConv |= MdSigCallingConvention.Vararg; break; } return(callConv); }
private void Init(Module mod, MdSigCallingConvention callingConvention) { Init(mod, callingConvention, 0); }
private int m_argCount; // tracking number of arguments in the signature #endregion #region Constructor private SignatureHelper(Module mod, MdSigCallingConvention callingConvention) { // Use this constructor to instantiate a local var sig or Field where return type is not applied. Init(mod, callingConvention); }
private void Init(Module mod, MdSigCallingConvention callingConvention, int cGenericParam) { Init(mod); AddData((byte)callingConvention); if (callingConvention == MdSigCallingConvention.Field || callingConvention == MdSigCallingConvention.GenericInst) { m_sizeLoc = NO_SIZE_IN_SIG; } else { if (cGenericParam > 0) AddData(cGenericParam); m_sizeLoc = m_currSig++; } }
private SignatureHelper(Module mod, MdSigCallingConvention callingConvention, Type returnType, Type[] requiredCustomModifiers, Type[] optionalCustomModifiers) : this(mod, callingConvention, 0, returnType, requiredCustomModifiers, optionalCustomModifiers) { }
private SignatureHelper(Module mod, MdSigCallingConvention callingConvention, int cGenericParameters, Type returnType, Type[] requiredCustomModifiers, Type[] optionalCustomModifiers) { // Use this constructor to instantiate a any signatures that will require a return type. Init(mod, callingConvention, cGenericParameters); if (callingConvention == MdSigCallingConvention.Field) throw new ArgumentException(Environment.GetResourceString("Argument_BadFieldSig")); AddOneArgTypeHelper(returnType, requiredCustomModifiers, optionalCustomModifiers); }
public static object ToInternal(this MdSigCallingConvention elemType) { return(Enum.ToObject(type, (byte)elemType)); }
public MemberSignature(MdSigCallingConvention sigType) { SignatureType = sigType; }