c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
i1++;
i2++;
c1 = m_block[ i1 + 1 ];
c2 = m_block[ i2 + 1 ];
if( c1 != c2 )
{
return ( c1 > c2 );
}
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: 24
|
|
Number of AST nodes: 24
|
|
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 | i1++;↵ | | 7 | i1++;↵
|
8 | i2++;↵ | | 8 | i2++;↵
|
|
9 | c1 = m_block[ i1 + 1 ];↵ | | 9 | c1 = m_block[ i1 + 1 ];↵
|
10 | c2 = m_block[ i2 + 1 ];↵ | | 10 | c2 = m_block[ i2 + 1 ];↵
|
11 | if( c1 != c2 )↵ | | 11 | if( c1 != c2 )↵
|
12 | {↵ | | 12 | {↵
|
13 | return ( c1 > c2 );↵ | | 13 | return ( c1 > c2 );↵
|
14 | }↵ | | 14 | }↵
|
15 | i1++;↵ | | 15 | i1++;↵
|
16 | i2++;↵ | | 16 | i2++;↵
|
|
17 | c1 = m_block[ i1 + 1 ];↵ | | 17 | c1 = m_block[ i1 + 1 ];↵
|
18 | c2 = m_block[ i2 + 1 ];↵ | | 18 | c2 = m_block[ i2 + 1 ];↵
|
19 | if( c1 != c2 )↵ | | 19 | if( c1 != c2 )↵
|
20 | {↵ | | 20 | {↵
|
21 | return ( c1 > c2 );↵ | | 21 | return ( c1 > c2 );↵
|
22 | }↵ | | 22 | }↵
|
23 | i1++;↵ | | 23 | i1++;↵
|
24 | i2++;↵ | | 24 | i2++;↵
|
|
25 | c1 = m_block[ i1 + 1 ];↵ | | 25 | c1 = m_block[ i1 + 1 ];↵
|
26 | c2 = m_block[ i2 + 1 ];↵ | | 26 | c2 = m_block[ i2 + 1 ];↵
|
27 | if( c1 != c2 )↵ | | 27 | if( c1 != c2 )↵
|
28 | {↵ | | 28 | {↵
|
29 | return ( c1 > c2 );↵ | | 29 | return ( c1 > c2 );↵
|
30 | }↵ | | 30 | }↵
|
31 | i1++;↵ | | 31 | i1++;↵
|
32 | i2++; | | 32 | 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) | 0.7 |
Clones location | Clones are in the same method |
Number of node comparisons | 110 |
-
{Non-refactorable}
Mapping Summary
Number of mapped statements | 24 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 8 |
Time elapsed for statement mapping (ms) | 6.9 |
Clone type | Type 3 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
6 | c1 = m_block[i1 + 1]; | | 18 | c1 = m_block[i1 + 1]; |
7 | c2 = m_block[i2 + 1]; | | 19 | c2 = m_block[i2 + 1]; |
8 | if (c1 != c2) | | 20 | if (c1 != c2) |
9 | | | 21 | |
10 | i1++; | | 22 | i1++; |
11 | i2++; | | 23 | i2++; |
12 | c1 = m_block[i1 + 1]; | | 18 | c1 = m_block[i1 + 1]; |
13 | c2 = m_block[i2 + 1]; | | 19 | c2 = m_block[i2 + 1]; |
14 | if (c1 != c2) | | 26 | if (c1 != c2) |
15 | | | 27 | |
16 | i1++; | | 22 | i1++; |
17 | i2++; | | 23 | i2++; |
18 | c1 = m_block[i1 + 1]; | | 18 | c1 = m_block[i1 + 1]; |
19 | c2 = m_block[i2 + 1]; | | 19 | c2 = m_block[i2 + 1]; |
| | | 30 | c1 = m_block[i1 + 1]; |
| | | 31 | c2 = m_block[i2 + 1]; |
20 | if (c1 != c2) | | 32 | if (c1 != c2) |
21 | | | 33 | |
22 | i1++; | | 22 | i1++; |
23 | i2++; | | 23 | i2++; |
24 | c1 = m_block[i1 + 1]; | | 24 | c1 = m_block[i1 + 1]; |
25 | c2 = m_block[i2 + 1]; | | 25 | c2 = m_block[i2 + 1]; |
26 | if (c1 != c2) | | 38 | if (c1 != c2) |
27 | | | 39 | |
28 | i1++; | | 28 | i1++; |
29 | i2++; | | 29 | i2++; |
| | | 34 | i1++; |
| | | 35 | i2++; |
| | | 36 | c1 = m_block[i1 + 1]; |
| | | 37 | c2 = m_block[i2 + 1]; |
| | | 40 | i1++; |
| | | 41 | 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 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 |
4 | 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 |
5 | Clone fragment #1 returns variables i1, i2 , while Clone fragment #2 returns variables i1, i2 |