Ejemplo n.º 1
0
        public ClassInfo ReadClassInfo(Abc abc, uint index)
        {
            ClassInfo result = new ClassInfo(index);

            result.StaticInitializer = abc.MethodArray[ReadU30()];
            TraitsInfo[] traits = new TraitsInfo[ReadU30()];
            for (uint i = 0; i < traits.Length; i++)
            {
                traits[i] = ReadTraitsInfo(abc);
            }
            result.TraitsArray = new TraitsArray(traits.ToList());
            return(result);
        }
Ejemplo n.º 2
0
        public InstanceInfo ReadInstanceInfo(Abc abc, uint index)
        {
            InstanceInfo result = new InstanceInfo(index);

            result.Name      = abc.ConstantPool.GetMultinameAt(ReadU30());
            result.Supername = abc.ConstantPool.GetMultinameAt(ReadU30());

            result.Flags = (InstanceFlags)ReadByte();
            if (result.Flags.HasFlag(InstanceFlags.ProtectedNs))
            {
                result.ProtectedNamespace = abc.ConstantPool.GetNamespaceAt(ReadU30());
            }
            result.InterfaceArray      = ReadU30Array(ReadU30());
            result.InstanceInitializer = abc.MethodArray[ReadU30()];
            TraitsInfo[] traits = new TraitsInfo[ReadU30()];
            for (uint i = 0; i < traits.Length; i++)
            {
                traits[i] = ReadTraitsInfo(abc);
            }
            result.TraitsArray = new TraitsArray(traits.ToList());
            return(result);
        }