Esempio n. 1
0
        internal void scan_tree(short[] tree, int max_code)
        {
            int num  = -1;
            int num2 = (int)tree[1];
            int num3 = 0;
            int num4 = 7;
            int num5 = 4;

            if (num2 == 0)
            {
                num4 = 138;
                num5 = 3;
            }
            tree[(max_code + 1) * 2 + 1] = (short)SupportClass.Identity(65535L);
            for (int i = 0; i <= max_code; i++)
            {
                int num6 = num2;
                num2 = (int)tree[(i + 1) * 2 + 1];
                if (++num3 >= num4 || num6 != num2)
                {
                    if (num3 < num5)
                    {
                        this.bl_tree[num6 * 2] = (short)((int)this.bl_tree[num6 * 2] + num3);
                    }
                    else if (num6 != 0)
                    {
                        if (num6 != num)
                        {
                            short[] expr_8B_cp_0 = this.bl_tree;
                            int     expr_8B_cp_1 = num6 * 2;
                            expr_8B_cp_0[expr_8B_cp_1] += 1;
                        }
                        short[] expr_9E_cp_0 = this.bl_tree;
                        int     expr_9E_cp_1 = 32;
                        expr_9E_cp_0[expr_9E_cp_1] += 1;
                    }
                    else if (num3 <= 10)
                    {
                        short[] expr_B9_cp_0 = this.bl_tree;
                        int     expr_B9_cp_1 = 34;
                        expr_B9_cp_0[expr_B9_cp_1] += 1;
                    }
                    else
                    {
                        short[] expr_CE_cp_0 = this.bl_tree;
                        int     expr_CE_cp_1 = 36;
                        expr_CE_cp_0[expr_CE_cp_1] += 1;
                    }
                    num3 = 0;
                    num  = num6;
                    if (num2 == 0)
                    {
                        num4 = 138;
                        num5 = 3;
                    }
                    else if (num6 == num2)
                    {
                        num4 = 6;
                        num5 = 3;
                    }
                    else
                    {
                        num4 = 7;
                        num5 = 4;
                    }
                }
            }
        }
Esempio n. 2
0
        internal void scan_tree(short[] tree, int max_code)
        {
            int num  = -1;
            int num2 = (int)tree[1];
            int num3 = 0;
            int num4 = 7;
            int num5 = 4;

            if (num2 == 0)
            {
                num4 = 138;
                num5 = 3;
            }
            tree[(max_code + 1) * 2 + 1] = (short)SupportClass.Identity(65535L);
            for (int i = 0; i <= max_code; i++)
            {
                int num6 = num2;
                num2 = (int)tree[(i + 1) * 2 + 1];
                if (++num3 >= num4 || num6 != num2)
                {
                    if (num3 < num5)
                    {
                        this.bl_tree[num6 * 2] = (short)((int)this.bl_tree[num6 * 2] + num3);
                    }
                    else if (num6 != 0)
                    {
                        short[] array;
                        if (num6 != num)
                        {
                            IntPtr intPtr;
                            (array = this.bl_tree)[(int)(intPtr = (IntPtr)(num6 * 2))] = (short)(array[(int)intPtr] + 1);
                        }
                        (array = this.bl_tree)[32] = (short)(array[32] + 1);
                    }
                    else if (num3 <= 10)
                    {
                        short[] array;
                        (array = this.bl_tree)[34] = (short)(array[34] + 1);
                    }
                    else
                    {
                        short[] array;
                        (array = this.bl_tree)[36] = (short)(array[36] + 1);
                    }
                    num3 = 0;
                    num  = num6;
                    if (num2 == 0)
                    {
                        num4 = 138;
                        num5 = 3;
                    }
                    else if (num6 == num2)
                    {
                        num4 = 6;
                        num5 = 3;
                    }
                    else
                    {
                        num4 = 7;
                        num5 = 4;
                    }
                }
            }
        }