Ejemplo n.º 1
0
        internal void resolveReferences(MetaDataLoader loader,
                                        MetaDataTypeDefinition[] fieldOwners,
                                        MetaDataTypeDefinition[] methodOwners)
        {
            this.extends = loader.getTypeDefOrRef(this.extendsIndex);
            // fieldOwners[fieldOwners.Length-1] == null, so this is safe
            int fieldEndIndex = this.fieldIndex;

            while (fieldOwners[fieldEndIndex] == this)
            {
                loader.getField(fieldEndIndex).resolveReferences(this);
                fieldEndIndex++;
            }
            int fieldCount = fieldEndIndex - this.fieldIndex;

            this.fieldArray = loader.getFields(this.fieldIndex, fieldCount);
            // methodOwners[methodOwners.Length-1] == null, so this is safe
            int methodEndIndex = this.methodIndex;

            while (methodOwners[methodEndIndex] == this)
            {
                loader.getMethod(methodEndIndex).setParent(this);
                methodEndIndex++;
            }
            int methodCount = methodEndIndex - this.methodIndex;

            this.methodArray = loader.getMethods(this.methodIndex, methodCount);
        }
Ejemplo n.º 2
0
 // This is technically not a constructor method, but it is meant to
 // be used to set up the object
 internal void resolveReferences(MetaDataLoader loader,
                                 ArrayList[] interfaceListArray)
 {
     this.classObject     = loader.getTypeDef(this.classIndex);
     this.interfaceObject = loader.getTypeDefOrRef(this.interfaceIndex);
     if (interfaceListArray[this.classIndex] == null)
     {
         interfaceListArray[this.classIndex] = new ArrayList();
     }
     interfaceListArray[this.classIndex].Add(this.interfaceObject);
 }
Ejemplo n.º 3
0
        private Modifier parseSignatureModifiers(MetaDataLoader mdLoader)
        {
            Modifier     result = null;
            ElementTypes mod    = (ElementTypes)this.buffer[this.offset];

            while (mod == ElementTypes.CMOD_REQD ||
                   mod == ElementTypes.CMOD_OPT)
            {
                this.offset++;
                uint typeEncoded = uncompressInt(this.buffer, ref this.offset);
                // BUGBUG: type conversion on int.
                MetaDataObject type = mdLoader.getTypeDefOrRef((int)typeEncoded);
                result = new Modifier(mod, type, result);
                if (this.offset < this.buffer.Length)
                {
                    mod = (ElementTypes)this.buffer[this.offset];
                }
                else
                {
                    mod = ElementTypes.VOID;
                }
            }
            return(result);
        }
Ejemplo n.º 4
0
 // This is technically not a constructor method, but it is meant to
 // be used to set up the object
 internal void resolveReferences(MetaDataLoader loader)
 {
     this.eventType = loader.getTypeDefOrRef(this.eventTypeIndex);
 }
 // This is technically not a constructor method, but it is meant to
 // be used to set up the object
 internal void resolveReferences(MetaDataLoader loader)
 {
     this.owner      = loader.getGenericParam(this.ownerIndex);
     this.constraint = loader.getTypeDefOrRef(this.constraintIndex);
     this.owner.AddGenericParamConstraint(this.constraint);
 }