if (groupPos == 0) { groupPos = G_SIZE - 1; zt = selector[++groupNo] & 0xff; base_zt = base[zt]; limit_zt = limit[zt]; perm_zt = perm[zt]; minLens_zt = minLens[zt]; } else { groupPos--; } int zn = minLens_zt; // Inlined: // int zvec = bsR(zn); while (bsLiveShadow < zn) { final int thech = inShadow.read(); if (thech >= 0) { bsBuffShadow = (bsBuffShadow << 8) | thech; bsLiveShadow += 8; continue; } else { throw new IOException("unexpected end of stream"); } } int zvec = (bsBuffShadow >> (bsLiveShadow - zn)) & ((1 << zn) - 1); bsLiveShadow -= zn; while (zvec > limit_zt[zn]) { zn++; while (bsLiveShadow < 1) { final int thech = inShadow.read(); if (thech >= 0) { bsBuffShadow = (bsBuffShadow << 8) | thech; bsLiveShadow += 8; continue; } else { throw new IOException("unexpected end of stream"); } } bsLiveShadow--; zvec = (zvec << 1) | ((bsBuffShadow >> bsLiveShadow) & 1); } nextSym = perm_zt[zvec - base_zt[zn]];
if (groupPos == 0) { groupPos = G_SIZE - 1; zt = selector[++groupNo] & 0xff; base_zt = base[zt]; limit_zt = limit[zt]; perm_zt = perm[zt]; minLens_zt = minLens[zt]; } else { groupPos--; } int zn = minLens_zt; // Inlined: // int zvec = bsR(zn); while (bsLiveShadow < zn) { final int thech = inShadow.read(); if (thech >= 0) { bsBuffShadow = (bsBuffShadow << 8) | thech; bsLiveShadow += 8; continue; } else { throw new IOException("unexpected end of stream"); } } int zvec = (bsBuffShadow >> (bsLiveShadow - zn)) & ((1 << zn) - 1); bsLiveShadow -= zn; while (zvec > limit_zt[zn]) { zn++; while (bsLiveShadow < 1) { final int thech = inShadow.read(); if (thech >= 0) { bsBuffShadow = (bsBuffShadow << 8) | thech; bsLiveShadow += 8; continue; } else { throw new IOException("unexpected end of stream"); } } bsLiveShadow--; zvec = (zvec << 1) | ((bsBuffShadow >> bsLiveShadow) & 1); } nextSym = perm_zt[zvec - base_zt[zn]];
Clone fragments detected by clone detection tool
File path: /apache-ant-1.7.0/src/org/apache/tools/bzip2/CBZip2InputStream.java File path: /apache-ant-1.7.0/src/org/apache/tools/bzip2/CBZip2InputStream.java
Method name: void getAndMoveToFrontDecode() Method name: void getAndMoveToFrontDecode()
Number of AST nodes: 30 Number of AST nodes: 30
1
if (groupPos == 0) {
1
if (groupPos == 0) {
2
                        groupPos    = G_SIZE - 1;
2
                    groupPos    = G_SIZE - 1;
3
                        zt          = selector[++groupNo] & 0xff;
3
                    zt          = selector[++groupNo] & 0xff;
4
                        base_zt     = base[zt];
4
                    base_zt     = base[zt];
5
                        limit_zt    = limit[zt];
5
                    limit_zt    = limit[zt];
6
                        perm_zt     = perm[zt];
6
                    perm_zt     = perm[zt];
7
                        minLens_zt  = minLens[zt];
7
                    minLens_zt  = minLens[zt];
8
                    } else {
8
                } else {
9
                        groupPos--;
9
                    groupPos--;
10
                    }
10
                
11
    
11
}
12
                int zn = minLens_zt;
12
                int zn = minLens_zt;
13
                    // Inlined:
13
                // Inlined:
14
                    // int zvec = bsR(zn);
14
                // int zvec = bsR(zn);
15
                    while (bsLiveShadow < zn) {
15
                while (bsLiveShadow < zn) {
16
                        final int thech = inShadow.read();
16
                    final int thech = inShadow.read();
17
                        if (thech >= 0) {
17
                    if (thech >= 0) {
18
                            bsBuffShadow = (bsBuffShadow << 8) | thech;
18
                        bsBuffShadow = (bsBuffShadow << 8) | thech;
19
                            bsLiveShadow += 8;
19
                        bsLiveShadow += 8;
20
                            continue;
20
                        continue;
21
                        } else {
21
                    } else {
22
                            throw new IOException("unexpected end of stream");
22
                        throw new IOException("unexpected end of stream");
23
                        }
23
                    
24
    
24
}
25
                }
25
                }
26
                    int zvec = (bsBuffShadow >> (bsLiveShadow - zn)) & ((1 << zn) - 1);
26
                int zvec = (bsBuffShadow >> (bsLiveShadow - zn)) & ((1 << zn) - 1);
27
                    bsLiveShadow -= zn;
27
                bsLiveShadow -= zn;
28
                    while (zvec > limit_zt[zn]) {
28
                while (zvec > limit_zt[zn]) {
29
                        zn++;
29
                    zn++;
30
                        while (bsLiveShadow < 1) {
30
                    while (bsLiveShadow < 1) {
31
                            final int thech = inShadow.read();
31
                        final int thech = inShadow.read();
32
                            if (thech >= 0) {
32
                        if (thech >= 0) {
33
                                bsBuffShadow = (bsBuffShadow << 8) | thech;
33
                            bsBuffShadow = (bsBuffShadow << 8) | thech;
34
                                bsLiveShadow += 8;
34
                            bsLiveShadow += 8;
35
                                continue;
35
                            continue;
36
                            } else {
36
                        } else {
37
                                throw new IOException("unexpected end of stream");
37
                            throw new IOException("unexpected end of stream");
38
                            }
38
                        }
39
                        }
39
                    
40
    
40
}
41
                    bsLiveShadow--;
41
                    bsLiveShadow--;
42
                        zvec = (zvec << 1) | ((bsBuffShadow >> bsLiveShadow) & 1);
42
                    zvec = (zvec << 1) | ((bsBuffShadow >> bsLiveShadow) & 1);
43
                    }
43
                
44
    
44
}
45
                nextSym = perm_zt[zvec - base_zt[zn]];
45
                nextSym = perm_zt[zvec - base_zt[zn]];
Summary
Number of common nesting structure subtrees1
Number of refactorable cases0
Number of non-refactorable cases1
Time elapsed for finding largest common nesting structure subtrees (ms)2.1
Clones locationClones are in the same method
Number of node comparisons182
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements30
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)701.1
    Clone typeType 1
    Mapped Statements
    ID Statement ID Statement
    39
    if (groupPos == 0)
    85
    if (groupPos == 0)
    40
    groupPos = G_SIZE - 1;
    86
    groupPos = G_SIZE - 1;
    41
    zt = selector[++groupNo] & 0xff;
    87
    zt = selector[++groupNo] & 0xff;
    42
    base_zt = base[zt];
    88
    base_zt = base[zt];
    43
    limit_zt = limit[zt];
    89
    limit_zt = limit[zt];
    44
    perm_zt = perm[zt];
    90
    perm_zt = perm[zt];
    45
    minLens_zt = minLens[zt];
    91
    minLens_zt = minLens[zt];
    else
    else
    46
    groupPos--;
    92
    groupPos--;
    47
    int zn = minLens_zt;
    93
    int zn = minLens_zt;
    48
    while (bsLiveShadow < zn)
    94
    while (bsLiveShadow < zn)
    49
    final int thech = inShadow.read();
    95
    final int thech = inShadow.read();
    50
    if (thech >= 0)
    96
    if (thech >= 0)
    51
    bsBuffShadow = (bsBuffShadow << 8) | thech;
    97
    bsBuffShadow = (bsBuffShadow << 8) | thech;
    52
    bsLiveShadow += 8;
    98
    bsLiveShadow += 8;
    53
    continue;
    99
    continue;
    else
    else
    54
    throw new IOException("unexpected end of stream");
    100
    throw new IOException("unexpected end of stream");
    55
    int zvec = (bsBuffShadow >> (bsLiveShadow - zn)) & ((1 << zn) - 1);
    101
    int zvec = (bsBuffShadow >> (bsLiveShadow - zn)) & ((1 << zn) - 1);
    56
    bsLiveShadow -= zn;
    102
    bsLiveShadow -= zn;
    57
    while (zvec > limit_zt[zn])
    103
    while (zvec > limit_zt[zn])
    58
    zn++;
    104
    zn++;
    59
    while (bsLiveShadow < 1)
    105
    while (bsLiveShadow < 1)
    60
    final int thech = inShadow.read();
    106
    final int thech = inShadow.read();
    61
    if (thech >= 0)
    107
    if (thech >= 0)
    62
    bsBuffShadow = (bsBuffShadow << 8) | thech;
    108
    bsBuffShadow = (bsBuffShadow << 8) | thech;
    63
    bsLiveShadow += 8;
    109
    bsLiveShadow += 8;
    64
    continue;
    110
    continue;
    else
    else
    65
    throw new IOException("unexpected end of stream");
    111
    throw new IOException("unexpected end of stream");
    66
    bsLiveShadow--;
    112
    bsLiveShadow--;
    67
    zvec = (zvec << 1) | ((bsBuffShadow >> bsLiveShadow) & 1);
    113
    zvec = (zvec << 1) | ((bsBuffShadow >> bsLiveShadow) & 1);
    68
    nextSym = perm_zt[zvec - base_zt[zn]];
    114
    nextSym = perm_zt[zvec - base_zt[zn]];
    Precondition Violations (1)
    Row Violation
    1Clone fragment #1 returns variables nextSym, groupPos, groupNo, minLens_zt, bsLiveShadow, bsBuffShadow, limit_zt, base_zt, perm_zt , while Clone fragment #2 returns variables nextSym, groupPos, groupNo, minLens_zt, bsLiveShadow, bsBuffShadow, limit_zt, base_zt, perm_zt