Exemple #1
0
        private static FileDescriptor BuildFrom(ByteString descriptorData, FileDescriptorProto proto, FileDescriptor[] dependencies, bool allowUnknownDependencies, GeneratedCodeInfo generatedCodeInfo)
        {
            if (dependencies == null)
            {
                goto IL_18;
            }
            goto IL_122;
            uint           arg_D3_0;
            FileDescriptor fileDescriptor;
            int            num2;

            while (true)
            {
IL_CE:
                uint num;
                switch ((num = (arg_D3_0 ^ 4161713641u)) % 12u)
                {
                case 0u:
                    fileDescriptor.CrossLink();
                    arg_D3_0 = (num * 1953233347u ^ 2707760628u);
                    continue;

                case 1u:
                    num2     = 0;
                    arg_D3_0 = 2574715432u;
                    continue;

                case 2u:
                    num2++;
                    arg_D3_0 = 4243801185u;
                    continue;

                case 3u:
                    dependencies = new FileDescriptor[0];
                    arg_D3_0     = (num * 3942966366u ^ 4286440245u);
                    continue;

                case 4u:
                    arg_D3_0 = ((num2 < proto.Dependency.Count) ? 2982469083u : 3757505837u);
                    continue;

                case 5u:
                    arg_D3_0 = (num * 314203903u ^ 1276877662u);
                    continue;

                case 6u:
                    arg_D3_0 = ((!FileDescriptor.smethod_5(dependencies[num2].Name, proto.Dependency[num2])) ? 3773742995u : 2893382989u);
                    continue;

                case 7u:
                    goto IL_18;

                case 8u:
                    goto IL_14B;

                case 10u:
                    goto IL_122;

                case 11u:
                    goto IL_183;
                }
                break;
            }
            return(fileDescriptor);

IL_14B:
            throw new DescriptorValidationException(fileDescriptor, FileDescriptor.smethod_6(Module.smethod_37 <string>(2509052754u), proto.Dependency[num2], Module.smethod_35 <string>(3048061080u), dependencies[num2].Name));
IL_183:
            throw new DescriptorValidationException(fileDescriptor, Module.smethod_33 <string>(2639691648u));
IL_18:
            arg_D3_0 = 3320637418u;
            goto IL_CE;
IL_122:
            DescriptorPool pool = new DescriptorPool(dependencies);

            fileDescriptor = new FileDescriptor(descriptorData, proto, dependencies, pool, allowUnknownDependencies, generatedCodeInfo);
            arg_D3_0       = ((dependencies.Length != proto.Dependency.Count) ? 2984046962u : 2591580144u);
            goto IL_CE;
        }