File path: /jEdit-4.2/src/org/gjt/sp/jedit/TextUtilities.java | File path: /jEdit-4.2/src/org/gjt/sp/jedit/TextUtilities.java | |||
Method name: int findMatchingBracket(Buffer, int, int)
|
Method name: int findMatchingBracket(Buffer, int, int)
|
|||
Number of AST nodes: 25 | Number of AST nodes: 26 | |||
1 | offset--;↵ | |||
1 | for(;;)↵ | 2 | for(;;)↵ | |
2 | {↵ | 3 | {↵ | |
3 | for(int i = offset; i < lineText.count; i++)↵ | 4 | for(int i = offset; i >= 0; i--)↵ | |
4 | {↵ | 5 | {↵ | |
5 | char ch = lineText.array[lineText.offset + i];↵ | 6 | char ch = lineText.array[lineText.offset + i];↵ | |
6 | if(ch == c)↵ | 7 | if(ch == c)↵ | |
7 | {↵ | 8 | {↵ | |
8 | if(!haveTokens)↵ | 9 | if(!haveTokens)↵ | |
9 | {↵ | 10 | {↵ | |
10 | tokenHandler.init();↵ | 11 | tokenHandler.init();↵ | |
11 | buffer.markTokens(line,tokenHandler);↵ | 12 | buffer.markTokens(line,tokenHandler);↵ | |
12 | haveTokens = true;↵ | 13 | haveTokens = true;↵ | |
13 | }↵ | 14 | }↵ | |
14 | if(getTokenAtOffset(tokenHandler.getTokens(),i).id == idOfBracket)↵ | 15 | if(getTokenAtOffset(tokenHandler.getTokens(),i).id == idOfBracket)↵ | |
15 | count++;↵ | 16 | count++;↵ | |
16 | }↵ | 17 | }↵ | |
17 | else if(ch == cprime)↵ | 18 | else if(ch == cprime)↵ | |
18 | {↵ | 19 | {↵ | |
19 | if(!haveTokens)↵ | 20 | if(!haveTokens)↵ | |
20 | {↵ | 21 | {↵ | |
21 | tokenHandler.init();↵ | 22 | tokenHandler.init();↵ | |
22 | buffer.markTokens(line,tokenHandler);↵ | 23 | buffer.markTokens(line,tokenHandler);↵ | |
23 | haveTokens = true;↵ | 24 | haveTokens = true;↵ | |
24 | }↵ | 25 | }↵ | |
25 | if(getTokenAtOffset(tokenHandler.getTokens(),i).id == idOfBracket)↵ | 26 | if(getTokenAtOffset(tokenHandler.getTokens(),i).id == idOfBracket)↵ | |
26 | {↵ | 27 | {↵ | |
27 | count--;↵ | 28 | count--;↵ | |
28 | if(count == 0)↵ | 29 | if(count == 0)↵ | |
29 | return buffer.getLineStartOffset(line) + i;↵ | 30 | return buffer.getLineStartOffset(line) + i;↵ | |
30 | }↵ | 31 | }↵ | |
31 | }↵ | 32 | }↵ | |
32 | }↵ | 33 | }↵ | |
33 | //{{{ Go on to next line↵ | 34 | //{{{ Go on to previous line↵ | |
34 | line++;↵ | 35 | line--;↵ | |
35 | if(line >= buffer.getLineCount() || (line - startLine) > BRACKET_MATCH_LIMIT)↵ | 36 | if(line < 0 || (startLine - line) > BRACKET_MATCH_LIMIT)↵ | |
36 | break;↵ | 37 | break;↵ | |
37 | buffer.getLineText(line,lineText);↵ | 38 | buffer.getLineText(line,lineText);↵ | |
38 | offset = 0;↵ | 39 | offset = lineText.count - 1;↵ | |
39 | haveTokens = false;↵ | 40 | haveTokens = false;↵ | |
40 | //}}}↵ | 41 | //}}}↵ | |
41 | } | 42 |
| |
See real code fragment | See real code fragment |
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) | 1.6 |
Clones location | Clones are in the same method |
Number of node comparisons | 80 |
Number of mapped statements | 17 |
Number of unmapped statements in the first code fragment | 0 |
Number of unmapped statements in the second code fragment | 0 |
Time elapsed for statement mapping (ms) | 743.4 |
Clone type | Type 1 |
ID | Statement | ID | Statement | |
---|---|---|---|---|
45 | char ch = lineText.array[lineText.offset + i]; | 71 | char ch = lineText.array[lineText.offset + i]; | |
46 | if (ch == c) | 72 | if (ch == c) | |
47 | if (!haveTokens) | 73 | if (!haveTokens) | |
48 | tokenHandler.init(); | 74 | tokenHandler.init(); | |
49 | buffer.markTokens(line, tokenHandler); | 75 | buffer.markTokens(line, tokenHandler); | |
50 | haveTokens = true; | 76 | haveTokens = true; | |
51 | if (getTokenAtOffset(tokenHandler.getTokens(), i).id == idOfBracket) | 77 | if (getTokenAtOffset(tokenHandler.getTokens(), i).id == idOfBracket) | |
52 | count++; | 78 | count++; | |
53 | else if (ch == cprime) | 79 | else if (ch == cprime) | |
54 | if (!haveTokens) | 80 | if (!haveTokens) | |
55 | tokenHandler.init(); | 81 | tokenHandler.init(); | |
56 | buffer.markTokens(line, tokenHandler); | 82 | buffer.markTokens(line, tokenHandler); | |
57 | haveTokens = true; | 83 | haveTokens = true; | |
58 | if (getTokenAtOffset(tokenHandler.getTokens(), i).id == idOfBracket) | 84 | if (getTokenAtOffset(tokenHandler.getTokens(), i).id == idOfBracket) | |
59 | count--; | 85 | count--; | |
60 | if (count == 0) | 86 | if (count == 0) | |
61 | return buffer.getLineStartOffset(line) + i; | 87 | return buffer.getLineStartOffset(line) + i; |
Row | Violation |
---|---|
1 | Clone fragment #1 returns variables haveTokens, count , while Clone fragment #2 returns variables haveTokens, count |