Example #1
0
        protected PEAPI.Type Modify(CodeGen code_gen, PEAPI.Type type)
        {
            PeapiTypeRef peapi_type = new PeapiTypeRef(type);
            int          count      = conversion_list.Count;

            for (int i = 0; i < count; i++)
            {
                switch ((ConversionMethod)conversion_list[i])
                {
                case ConversionMethod.MakeArray:
                    peapi_type.MakeArray();
                    break;

                case ConversionMethod.MakeBoundArray:
                    peapi_type.MakeBoundArray((ArrayList)conversion_list[++i]);
                    break;

                case ConversionMethod.MakeManagedPointer:
                    peapi_type.MakeManagedPointer();
                    break;

                case ConversionMethod.MakeUnmanagedPointer:
                    peapi_type.MakeUnmanagedPointer();
                    break;

                case ConversionMethod.MakeCustomModified:
                    peapi_type.MakeCustomModified(code_gen, (PEAPI.CustomModifier)conversion_list[++i],
                                                  (BaseClassRef)conversion_list[++i]);
                    break;
                }
            }

            return(peapi_type.PeapiType);
        }
Example #2
0
                protected PEAPI.Type Modify (CodeGen code_gen, PEAPI.Type type)
                {
                        PeapiTypeRef peapi_type = new PeapiTypeRef (type);
                        int count = conversion_list.Count;
                        for (int i=0; i<count; i++) {
                                switch ((ConversionMethod) conversion_list[i]) {
                                case ConversionMethod.MakeArray:
                                        peapi_type.MakeArray ();
                                        break;
                                case ConversionMethod.MakeBoundArray:
                                        peapi_type.MakeBoundArray ((ArrayList) conversion_list[++i]);
                                        break;
                                case ConversionMethod.MakeManagedPointer:
                                        peapi_type.MakeManagedPointer ();
                                        break;
                                case ConversionMethod.MakeUnmanagedPointer:
                                        peapi_type.MakeUnmanagedPointer ();
                                        break;
                                case ConversionMethod.MakeCustomModified:
                                        peapi_type.MakeCustomModified (code_gen, (PEAPI.CustomModifier) conversion_list[++i],
                                                (BaseTypeRef) conversion_list[++i]);
                                        break;
                                }

                        }

                        return peapi_type.PeapiType;
                }