File path: /jruby-1.4.0/src/org/jruby/RubyRegexp.java | File path: /jruby-1.4.0/src/org/jruby/RubyRegexp.java | |||
Method name: RubyString regsub19(RubyString, RubyString, Matcher, Regex)
|
Method name: RubyString regsub(RubyString, RubyString, Matcher, Encoding)
|
|||
Number of AST nodes: 4 | Number of AST nodes: 4 | |||
1 | if (no >= 0) {↵ | 1 | if (no >= 0) {↵ | |
2 | if (no >= regs.numRegs || regs.beg[no] == -1) continue;↵ | 2 | if (no >= regs.numRegs || regs.beg[no] == -1) continue;↵ | |
3 | val.cat(srcbs.bytes, srcbs.begin + regs.beg[no], regs.end[no] - regs.beg[no], srcEnc);↵ | 3 | val.append(srcbs.bytes, srcbs.begin + regs.beg[no], regs.end[no] - regs.beg[no]);↵ | |
4 | } | 4 |
| |
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) | 0.4 |
Clones location | Clones are declared in the same class |
Number of node comparisons | 11 |
Number of mapped statements | 3 |
Number of unmapped statements in the first code fragment | 1 |
Number of unmapped statements in the second code fragment | 1 |
Time elapsed for statement mapping (ms) | 1.2 |
Clone type | Type 2 |
ID | Statement | ID | Statement | |||||||
---|---|---|---|---|---|---|---|---|---|---|
110 | if (no >= 0) | 64 | if (no >= 0) | |||||||
111 | if (no >= regs.numRegs || regs.beg[no] == -1) | 65 | if (no >= regs.numRegs || regs.beg[no] == -1) | |||||||
112 | continue; |
| 66 | continue; | ||||||
|
| 67 | val.append(srcbs.bytes, srcbs.begin + regs.beg[no], regs.end[no] - regs.beg[no]); | |||||||
113 | val.cat(srcbs.bytes, srcbs.begin + regs.beg[no], regs.end[no] - regs.beg[no], srcEnc); |
| |
Row | Violation |
---|---|
1 | Statement continue; without innermost loop |
2 | Statement continue; without innermost loop |
3 | Unmatched statement val.append(srcbs.bytes,srcbs.begin + regs.beg[no],regs.end[no] - regs.beg[no]); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |
4 | Unmatched statement val.cat(srcbs.bytes,srcbs.begin + regs.beg[no],regs.end[no] - regs.beg[no],srcEnc); cannot be moved before the extracted code, because it has control dependencies from statements that will be extracted |