c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
s1 = m_quadrant[ i1 ];
s2 = m_quadrant[ i2 ];
if( s1 != s2 )
{
return ( s1 > s2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
s1 = m_quadrant[ i1 ];
s2 = m_quadrant[ i2 ];
if( s1 != s2 )
{
return ( s1 > s2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
s1 = m_quadrant[ i1 ];
s2 = m_quadrant[ i2 ];
if( s1 != s2 )
{
return ( s1 > s2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
s1 = m_quadrant[ i1 ];
s2 = m_quadrant[ i2 ];
if( s1 != s2 )
{
return ( s1 > s2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
s1 = m_quadrant[ i1 ];
s2 = m_quadrant[ i2 ];
if( s1 != s2 )
{
return ( s1 > s2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
s1 = m_quadrant[ i1 ];
s2 = m_quadrant[ i2 ];
if( s1 != s2 )
{
return ( s1 > s2 );
}
i1++;
i2++;
Clone fragments detected by clone detection tool
File path: /jEdit-4.2/src/installer/CBZip2OutputStream.java
|
|
File path: /jEdit-4.2/src/installer/CBZip2OutputStream.java
|
Method name: boolean fullGtU(int, int)
|
|
Method name: boolean fullGtU(int, int)
|
Number of AST nodes: 30
|
|
Number of AST nodes: 30
|
|
1 | c1 = m_block[ i1 + 1 ];↵ | | 1 | c1 = m_block[ i1 + 1 ];↵
|
2 | c2 = m_block[ i2 + 1 ];↵ | | 2 | c2 = m_block[ i2 + 1 ];↵
|
3 | if( c1 != c2 )↵ | | 3 | if( c1 != c2 )↵
|
4 | {↵ | | 4 | {↵
|
5 | return ( c1 > c2 );↵ | | 5 | return ( c1 > c2 );↵
|
6 | }↵ | | 6 | }↵
|
7 | s1 = m_quadrant[ i1 ];↵ | | 7 | s1 = m_quadrant[ i1 ];↵
|
8 | s2 = m_quadrant[ i2 ];↵ | | 8 | s2 = m_quadrant[ i2 ];↵
|
9 | if( s1 != s2 )↵ | | 9 | if( s1 != s2 )↵
|
10 | {↵ | | 10 | {↵
|
11 | return ( s1 > s2 );↵ | | 11 | return ( s1 > s2 );↵
|
12 | }↵ | | 12 | }↵
|
13 | i1++;↵ | | 13 | i1++;↵
|
14 | i2++;↵ | | 14 | i2++;↵
|
|
15 | c1 = m_block[ i1 + 1 ];↵ | | 15 | c1 = m_block[ i1 + 1 ];↵
|
16 | c2 = m_block[ i2 + 1 ];↵ | | 16 | c2 = m_block[ i2 + 1 ];↵
|
17 | if( c1 != c2 )↵ | | 17 | if( c1 != c2 )↵
|
18 | {↵ | | 18 | {↵
|
19 | return ( c1 > c2 );↵ | | 19 | return ( c1 > c2 );↵
|
20 | }↵ | | 20 | }↵
|
21 | s1 = m_quadrant[ i1 ];↵ | | 21 | s1 = m_quadrant[ i1 ];↵
|
22 | s2 = m_quadrant[ i2 ];↵ | | 22 | s2 = m_quadrant[ i2 ];↵
|
23 | if( s1 != s2 )↵ | | 23 | if( s1 != s2 )↵
|
24 | {↵ | | 24 | {↵
|
25 | return ( s1 > s2 );↵ | | 25 | return ( s1 > s2 );↵
|
26 | }↵ | | 26 | }↵
|
27 | i1++;↵ | | 27 | i1++;↵
|
28 | i2++;↵ | | 28 | i2++;↵
|
|
29 | c1 = m_block[ i1 + 1 ];↵ | | 29 | c1 = m_block[ i1 + 1 ];↵
|
30 | c2 = m_block[ i2 + 1 ];↵ | | 30 | c2 = m_block[ i2 + 1 ];↵
|
31 | if( c1 != c2 )↵ | | 31 | if( c1 != c2 )↵
|
32 | {↵ | | 32 | {↵
|
33 | return ( c1 > c2 );↵ | | 33 | return ( c1 > c2 );↵
|
34 | }↵ | | 34 | }↵
|
35 | s1 = m_quadrant[ i1 ];↵ | | 35 | s1 = m_quadrant[ i1 ];↵
|
36 | s2 = m_quadrant[ i2 ];↵ | | 36 | s2 = m_quadrant[ i2 ];↵
|
37 | if( s1 != s2 )↵ | | 37 | if( s1 != s2 )↵
|
38 | {↵ | | 38 | {↵
|
39 | return ( s1 > s2 );↵ | | 39 | return ( s1 > s2 );↵
|
40 | }↵ | | 40 | }↵
|
41 | i1++;↵ | | 41 | i1++;↵
|
42 | i2++; | | 42 | i2++;
|
See real code fragment |
|
See real code fragment |
Summary
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 0 |
Number of non-refactorable cases | 1 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 2.7 |
Clones location | Clones are in the same method |
Number of node comparisons | 154 |
-
{Non-refactorable}
Mapping Summary
Number of mapped statements | 30 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 6 |
Time elapsed for statement mapping (ms) | 9.4 |
Clone type | Type 3 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
43 | c1 = m_block[i1 + 1]; | | 53 | c1 = m_block[i1 + 1]; |
44 | c2 = m_block[i2 + 1]; | | 54 | c2 = m_block[i2 + 1]; |
45 | if (c1 != c2) | | 55 | if (c1 != c2) |
46 | | | 56 | |
47 | s1 = m_quadrant[i1]; | | 57 | s1 = m_quadrant[i1]; |
48 | s2 = m_quadrant[i2]; | | 58 | s2 = m_quadrant[i2]; |
49 | if (s1 != s2) | | 59 | if (s1 != s2) |
50 | | | 60 | |
51 | i1++; | | 61 | i1++; |
52 | i2++; | | 62 | i2++; |
53 | c1 = m_block[i1 + 1]; | | 53 | c1 = m_block[i1 + 1]; |
54 | c2 = m_block[i2 + 1]; | | 54 | c2 = m_block[i2 + 1]; |
55 | if (c1 != c2) | | 65 | if (c1 != c2) |
56 | | | 66 | |
57 | s1 = m_quadrant[i1]; | | 57 | s1 = m_quadrant[i1]; |
58 | s2 = m_quadrant[i2]; | | 58 | s2 = m_quadrant[i2]; |
59 | if (s1 != s2) | | 69 | if (s1 != s2) |
60 | | | 70 | |
61 | i1++; | | 61 | i1++; |
62 | i2++; | | 62 | i2++; |
63 | c1 = m_block[i1 + 1]; | | 63 | c1 = m_block[i1 + 1]; |
64 | c2 = m_block[i2 + 1]; | | 64 | c2 = m_block[i2 + 1]; |
| | | 73 | c1 = m_block[i1 + 1]; |
| | | 74 | c2 = m_block[i2 + 1]; |
65 | if (c1 != c2) | | 75 | if (c1 != c2) |
66 | | | 76 | |
67 | s1 = m_quadrant[i1]; | | 67 | s1 = m_quadrant[i1]; |
68 | s2 = m_quadrant[i2]; | | 68 | s2 = m_quadrant[i2]; |
69 | if (s1 != s2) | | 79 | if (s1 != s2) |
70 | | | 80 | |
71 | i1++; | | 71 | i1++; |
72 | i2++; | | 72 | i2++; |
| | | 77 | s1 = m_quadrant[i1]; |
| | | 78 | s2 = m_quadrant[i2]; |
| | | 81 | i1++; |
| | | 82 | i2++; |
Precondition Violations (5)
Row |
Violation |
1 | Unmatched statement c1=m_block[i1 + 1]; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
2 | Unmatched statement c2=m_block[i2 + 1]; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
3 | Unmatched statement s1=m_quadrant[i1]; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
4 | Unmatched statement s2=m_quadrant[i2]; cannot be moved before or after the extracted code, because it has dependencies to/from statements that will be extracted |
5 | Clone fragment #1 returns variables i1, i2 , while Clone fragment #2 returns variables i1, i2 |