Esempio n. 1
0
        public PEAPI.FieldDef Resolve(CodeGen code_gen, PEAPI.ClassDef classdef)
        {
            if (is_resolved)
            {
                return(field_def);
            }

            type.Resolve(code_gen);
            field_def = classdef.AddField(attr, name, type.PeapiType);

            if (customattr_list != null)
            {
                foreach (CustomAttr customattr in customattr_list)
                {
                    customattr.AddTo(code_gen, field_def);
                }
            }

            if (native_type != null)
            {
                field_def.SetMarshalInfo(native_type);
            }

            is_resolved = true;

            return(field_def);
        }
Esempio n. 2
0
        public PEAPI.FieldDef Resolve(CodeGen code_gen)
        {
            if (is_resolved)
            {
                return(field_def);
            }

            type.Resolve(code_gen);
            field_def = code_gen.PEFile.AddField(attr, name, type.PeapiType);

            is_resolved = true;

            return(field_def);
        }
Esempio n. 3
0
        protected void WriteCode(CodeGen code_gen, PEAPI.FieldDef field_def)
        {
            if (offset_set)
            {
                field_def.SetOffset(offset);
            }

            if (value_set)
            {
                PEAPI.ByteArrConst dc = constant as PEAPI.ByteArrConst;
                if (dc != null)
                {
                    dc.Type = type.PeapiType;
                }
                field_def.AddValue(constant);
            }

            if (at_data_id != null)
            {
                PEAPI.DataConstant dc = code_gen.GetDataConst(at_data_id);
                field_def.AddDataValue(dc);
            }
        }
Esempio n. 4
0
                public PEAPI.FieldDef Resolve (CodeGen code_gen, PEAPI.ClassDef classdef)
                {
                        if (is_resolved)
                                return field_def;

                        type.Resolve (code_gen);
                        field_def = classdef.AddField (attr, name, type.PeapiType);

                        if (customattr_list != null)
                                foreach (CustomAttr customattr in customattr_list)
                                        customattr.AddTo (code_gen, field_def);

                        if (native_type != null)
                                field_def.SetMarshalInfo (native_type);

                        is_resolved = true;

                        return field_def;
                }
Esempio n. 5
0
                public PEAPI.FieldDef Resolve (CodeGen code_gen)
                {
                        if (is_resolved)
                                return field_def;

                        type.Resolve (code_gen);
                        field_def = code_gen.PEFile.AddField (attr, name, type.PeapiType);

                        is_resolved = true;

                        return field_def;
                }