Descriptors for native types used for marshalling
コード例 #1
0
ファイル: CodeGen.cs プロジェクト: zixing131/mono
        public void AddFieldDef(FieldDef fielddef)
        {
            if (current_field_native_type != null)
            {
                fielddef.AddMarshalInfo(current_field_native_type);
                current_field_native_type = null;
            }

            if (current_typedef != null)
            {
                current_typedef.AddFieldDef(fielddef);
            }
            else
            {
                global_field_table.Add(
                    new DictionaryEntry(fielddef.Name, fielddef.Type.FullName),
                    fielddef);
            }
        }
コード例 #2
0
		internal FieldMarshal(MetaDataElement field, NativeType nType)      
		{
			this.field = field;
			this.nt = nType;
			tabIx = MDTable.FieldMarshal;
		}
コード例 #3
0
		public NativeArray(NativeType elemType, int numElem, int parNumForLen) 
			: this (elemType, numElem, parNumForLen, -1) 
		{
		}
コード例 #4
0
		/*    public NativeArray(NativeType elemType, int len) : base(0x2A) {
		      this.elemType = elemType;
		      this.len = len;
		      }
		 */

		public NativeArray(NativeType elemType, int numElem, int parNumForLen, int elemMult) : base(0x2A) 
		{
			this.elemType = elemType;
			this.numElem = numElem;
			parNum = parNumForLen;
			this.elemMult = elemMult;
		}
コード例 #5
0
		public NativeArray(NativeType elemType) : this (elemType, -1, -1, -1) 
		{
			this.elemType = elemType;
		}
コード例 #6
0
		/* Add Marshal info for return type */
		public void AddRetTypeMarshallInfo (NativeType marshallType) 
		{
			ret_param.AddMarshallInfo (marshallType);
		}
コード例 #7
0
		/// <summary>
		/// Set the marshalling info for a field
		/// </summary>
		/// <param name="mInf"></param>
		public void SetMarshalInfo(NativeType marshallType) 
		{
			flags |= (ushort) FieldAttr.HasFieldMarshal;
			marshalInfo = new FieldMarshal(this,marshallType);
		}
コード例 #8
0
		/// <summary>
		/// Add marshalling information about this parameter
		/// </summary>
		public void AddMarshallInfo(NativeType marshallType) 
		{
			parMode |= (ushort) ParamAttr.HasFieldMarshal;
			marshalInfo = new FieldMarshal(this,marshallType);
		}
コード例 #9
0
                public void AddFieldDef (FieldDef fielddef)
                {
                        if (current_field_native_type != null) {
                                fielddef.AddMarshalInfo (current_field_native_type);
                                current_field_native_type = null;
                        }

                        if (current_typedef != null) {
                                current_typedef.AddFieldDef (fielddef);
                        } else {
                                global_field_table.Add (
                                        new DictionaryEntry (fielddef.Name, fielddef.Type.FullName),
                                        fielddef);
                        }
                }
コード例 #10
0
 public void AddFieldMarshalInfo (PEAPI.NativeType native_type)
 {
         current_field_native_type = native_type;
 }
コード例 #11
0
 /// <summary>
 /// Add marshalling information about this parameter
 /// </summary>
 public void AddMarshallInfo(NativeType marshallType) {
   parMode |= hasFieldMarshal;
   marshalInfo = new FieldMarshal(this,marshallType);
 }
コード例 #12
0
 public FixedArray(NativeType elemType, int numElems) : base(0x1E) {
   this.elemType = elemType;
   numElem = (uint)numElems;
 }
コード例 #13
0
    /*
    public NativeArray(NativeType elemType) : base(0x2A) {
      this.elemType = elemType;
    }

    public NativeArray(NativeType elemType, int len) : base(0x2A) {
      this.elemType = elemType;
      this.len = len;
    }
*/
    public NativeArray(NativeType elemType, int numElem, int parNumForLen) : base(0x2A) {
      this.elemType = elemType;
      len = (uint)numElem;
      parNum = (uint)parNumForLen;
    }
コード例 #14
0
 /// <summary>
 /// Set the marshalling info for a field
 /// </summary>
 /// <param name="mInf"></param>
 public void SetMarshalInfo(NativeType marshallType) {
   flags |= HasFieldMarshal;
   marshalInfo = new FieldMarshal(this,marshallType);
 }
コード例 #15
0
ファイル: CodeGen.cs プロジェクト: zixing131/mono
 public void AddFieldMarshalInfo(PEAPI.NativeType native_type)
 {
     current_field_native_type = native_type;
 }