⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gzipinputstream.java

📁 SyncML的java实现类库 funambol公司发布的
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            return 1;

        case 1: // '\001'
            for(; C > 0; C -= 8)
            {
                int j1 = _mthdo(8);
                if(j1 < 0)
                    return 0;
                _mthif(8);
                o = o << 8 | j1;
            }

            return 0;

        case 2: // '\002'
            if(H)
                if(A)
                {
                    T = 12;
                    return 0;
                } else
                {
                    T = 11;
                    return 1;
                }
            int k1 = _mthdo(3);
            if(k1 < 0)
                return 0;
            _mthif(3);
            if((k1 & 1) != 0)
                H = true;
            switch(k1 >> 1)
            {
            case 0: // '\0'
                _mthdo();
                T = 3;
                break;

            case 1: // '\001'
                _fldtry = q;
                r = t;
                T = 7;
                break;

            case 2: // '\002'
                _mthelse();
                T = 6;
                break;

            default:
                return -3;
            }
            return 1;

        case 3: // '\003'
            if((aa = _mthdo(16)) < 0)
                return 0;
            _mthif(16);
            T = 4;
            // fall through

        case 4: // '\004'
            int l1 = _mthdo(16);
            if(l1 < 0)
                return 0;
            _mthif(16);
            if(l1 != (aa ^ 0xffff))
                return -3;
            T = 5;
            // fall through

        case 5: // '\005'
            int l2 = Math.min(Math.min(aa, 32768 - _fldcase), _mthcase());
            int i3 = 0;
            boolean flag = false;
            int i4 = 32768 - av;
            if(l2 > i4)
            {
                int j3 = a(ap, av, i4);
                if(j3 < 0)
                    return -3;
                i3 = j3;
                if(i3 == i4)
                {
                    int k3 = a(ap, 0, l2 - i4);
                    if(k3 < 0)
                        return -3;
                    i3 += k3;
                }
            } else
            {
                int l3 = a(ap, av, l2);
                if(l3 < 0)
                    return -3;
                i3 = l3;
            }
            av = av + i3 & 0x7fff;
            _fldcase += i3;
            aa -= i3;
            if(aa == 0)
            {
                T = 2;
                return 1;
            } else
            {
                return _fldgoto == _fldint ? 0 : 1;
            }

        case 6: // '\006'
            int i2 = _mthint();
            if(i2 == 0)
                return 0;
            if(i2 == -1)
                return -3;
            T = 7;
            // fall through

        case 7: // '\007'
        case 8: // '\b'
        case 9: // '\t'
        case 10: // '\n'
            int j2 = _mthgoto();
            if(j2 == 0)
                return 0;
            return j2 != 1 ? -3 : 1;

        case 11: // '\013'
            _mthdo();
            for(C = 32; C > 0; C -= 8)
            {
                int k2 = _mthdo(8);
                if(k2 < 0)
                    return 0;
                _mthif(8);
                o = o << 8 | k2;
            }

            if(D != o)
            {
                return -3;
            } else
            {
                T = 12;
                return 0;
            }

        case 12: // '\f'
            return 0;

        default:
            return -3;
        }
    }

    private int _mthgoto()
    {
        int j2 = 32768 - _fldcase;
        do
        {
            if(j2 < 258)
                break;
            switch(T)
            {
            case 7: // '\007'
                int i1;
                while(((i1 = a(_fldtry)) & 0xffffff00) == 0) 
                {
                    if(_fldcase++ == 32768)
                        return -1;
                    ap[av++] = (byte)i1;
                    av &= 0x7fff;
                    if(--j2 < 258)
                        return 1;
                }
                if(i1 < 0)
                    return 0;
                if(i1 == 256)
                {
                    r = null;
                    _fldtry = null;
                    T = 2;
                    return 1;
                }
                int k1 = i1 - 257;
                if(k1 < 0 || k1 > 30)
                    return -1;
                ab = M[k1];
                C = as[k1];
                // fall through

            case 8: // '\b'
                if(C > 0)
                {
                    T = 8;
                    int l1 = _mthdo(C);
                    if(l1 < 0)
                        return 0;
                    _mthif(C);
                    ab += l1;
                }
                T = 9;
                // fall through

            case 9: // '\t'
                int j1 = a(r);
                if(j1 < 0)
                    return 0;
                if(j1 < 0 || j1 > 29)
                    return -1;
                I = u[j1];
                C = ad[j1];
                // fall through

            case 10: // '\n'
                if(C > 0)
                {
                    T = 10;
                    int i2 = _mthdo(C);
                    if(i2 < 0)
                        return 0;
                    _mthif(C);
                    I += i2;
                }
                if((_fldcase += ab) > 32768)
                    return -1;
                int k2 = av - I & 0x7fff;
                int l2 = ab;
                int i3 = 32768 - ab;
                if(k2 <= i3 && av < i3)
                {
                    if(l2 <= I)
                    {
                        System.arraycopy(ap, k2, ap, av, l2);
                        av += l2;
                    } else
                    {
                        while(l2-- > 0) 
                            ap[av++] = ap[k2++];
                    }
                } else
                {
                    while(l2-- > 0) 
                    {
                        ap[av++] = ap[k2++];
                        av &= 0x7fff;
                        k2 &= 0x7fff;
                    }
                }
                j2 -= ab;
                T = 7;
                break;

            default:
                return -1;
            }
        } while(true);
        return 1;
    }

    private void _mthelse()
    {
        S = 0;
        ac = z = V = aC = 0;
        ao = 0;
        aw = 0;
        _fldchar = 0;
    }

    private int _mthint()
    {
label0:
        do
            switch(S)
            {
            default:
                break;

            case 0: // '\0'
                ac = _mthdo(5);
                if(ac < 0)
                    return 0;
                ac += 257;
                _mthif(5);
                S = 1;
                // fall through

            case 1: // '\001'
                z = _mthdo(5);
                if(z < 0)
                    return 0;
                z++;
                _mthif(5);
                aC = ac + z;
                au = new byte[aC];
                S = 2;
                // fall through

            case 2: // '\002'
                V = _mthdo(4);
                if(V < 0)
                    return 0;
                V += 4;
                _mthif(4);
                s = new byte[19];
                _fldchar = 0;
                S = 3;
                // fall through

            case 3: // '\003'
                for(; _fldchar < V; _fldchar++)
                {
                    int i1 = _mthdo(3);
                    if(i1 < 0)
                        return 0;
                    _mthif(3);
                    s[ax[_fldchar]] = (byte)i1;
                }

                Z = a(s, s.length);
                s = null;
                _fldchar = 0;
                S = 4;
                // fall through

            case 4: // '\004'
                int j1;
                while(((j1 = a(Z)) & 0xfffffff0) == 0) 
                {
                    au[_fldchar++] = aw = (byte)j1;
                    if(_fldchar == aC)
                        break label0;
                }
                if(j1 < 0)
                    return 0;
                if(j1 >= 17)
                    aw = 0;
                else
                if(_fldchar == 0)
                    return -1;
                ao = j1 - 16;
                S = 5;
                // fall through

            case 5: // '\005'
                int k1 = c[ao];
                int l1 = _mthdo(k1);
                if(l1 < 0)
                    return 0;
                _mthif(k1);
                l1 += X[ao];
                if(_fldchar + l1 > aC)
                    return -1;
                while(l1-- > 0) 
                    au[_fldchar++] = aw;
                if(_fldchar == aC)
                    break label0;
                S = 4;
                break;
            }
        while(true);
        byte abyte0[] = new byte[ac];
        System.arraycopy(au, 0, abyte0, 0, ac);
        _fldtry = a(abyte0, ac);
        abyte0 = new byte[z];
        System.arraycopy(au, ac, abyte0, 0, z);
        r = a(abyte0, z);
        return 1;
    }

    private void _mthif(byte abyte0[], int i1, int j1)
    {
        int k1 = D & 0xffff;
        int l1 = D >> 16 & 0xffff;
        for(int i2 = 0; i2 < j1; i2++)
        {
            k1 = (k1 + abyte0[i2]) % 65521;
            l1 = (l1 + k1) % 65521;
        }

        D = (l1 << 16) + k1;
    }

    protected InputStream v;
    protected byte x[];
    protected int W;
    protected boolean l;
    private byte _fldvoid[];
    private static final String L = "Not in GZIP format";
    private static final String E = "Unsupported compression method";
    private static final String am = "Corrupt GZIP header";
    private static final String _fldnew = "Corrupt GZIP trailer";
    private static final String _fldnull = "Internal State Error";
    private static final int U[] = {
        31, 139
    };
    private static final int Q = 1;
    private static final int w = 2;
    private static final int F = 4;
    private static final int O = 8;
    private static final int Y = 16;
    private static final int ah = 224;
    private boolean y;
    private static final int f = 0;
    private static final int m = 1;
    private static final int d = 2;
    private static final int h = -3;
    private static final int B = -4;
    private static final int _fldbyte = -5;
    private static final int ag = -6;
    private byte aA[];
    private int _fldgoto;
    private int _fldint;
    private int al;
    private int aa;
    private int T;
    private boolean H;
    private boolean A;
    private int o;
    private int at;
    private int C;
    private final int J;
    private final int af;
    private byte ap[];
    private int av;
    private int _fldcase;
    private int G;
    private int K;
    private static short q[];
    private static short t[];
    private short _fldtry[];
    private short r[];
    private int ab;
    private int I;
    private static final int M[] = {
        3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 
        15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 
        67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 
        0
    };
    private static final int as[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
        1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 
        4, 4, 4, 4, 5, 5, 5, 5, 0, 112, 
        112
    };
    private static final int u[] = {
        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 
        33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 
        1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577
    };
    private static final int ad[] = {
        0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 
        4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 
        9, 9, 10, 10, 11, 11, 12, 12, 13, 13
    };
    private static final short j[] = {
        0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 
        5, 13, 3, 11, 7, 15
    };
    private static final int n = 15;
    private static final int ay = 7;
    private static final int ae = 0xfff80;
    private static final int _fldlong = 9;
    private static final int N = 512;
    private static final int P = 8;
    private static final int ai = 0;
    private static final int g = 1;
    private static final int _fldelse = 2;
    private static final int _fldfor = 3;
    private static final int aB = 4;
    private static final int ak = 5;
    private static final int b = 6;
    private static final int _fldif = 7;
    private static final int az = 8;
    private static final int R = 9;
    private static final int ar = 10;
    private static final int aj = 11;
    private static final int p = 12;
    private static final int _flddo = 13;
    private static final int k = 0;
    private static final int a = 1;
    private static final int i = 2;
    private static final int aq = 3;
    private static final int e = 4;
    private static final int aD = 5;
    private static final int X[] = {
        3, 3, 11
    };
    private static final int c[] = {
        2, 3, 7
    };
    private static final int ax[] = {
        16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 
        11, 4, 12, 3, 13, 2, 14, 1, 15
    };
    private int S;
    private int ac;
    private int z;
    private int V;
    private int aC;
    private int ao;
    private byte aw;
    private int _fldchar;
    private byte s[];
    private byte au[];
    private short Z[];
    private static final int an = 65521;
    private int D;

    static 
    {
        byte abyte0[] = new byte[288];
        int i1;
        for(i1 = 0; i1 < 144;)
            abyte0[i1++] = 8;

        while(i1 < 256) 
            abyte0[i1++] = 9;
        while(i1 < 280) 
            abyte0[i1++] = 7;
        while(i1 < 288) 
            abyte0[i1++] = 8;
        q = a(abyte0, 288);
        abyte0 = new byte[32];
        for(int j1 = 0; j1 < 32;)
            abyte0[j1++] = 5;

        t = a(abyte0, 32);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -