| Previous CloneSet | Next CloneSet | Back to Main Report |
| Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
|---|---|---|---|---|
| 17 | 4 | 5 | 0.955 | statement_sequence[2] |
| Clone Abstraction | Parameter Bindings |
| Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
|---|---|---|---|
| 1 | 17 | 788 | plugins/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java |
| 2 | 17 | 883 | plugins/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java |
| 3 | 17 | 997 | plugins/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java |
| 4 | 17 | 1426 | plugins/org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/ASTInstructionCompiler.java |
| ||||
// for each pending break or continue instruction which are related to
// this loop, set the offset of the corresponding jump.
for (Iterator iter = fCompleteInstructions.iterator(); iter.hasNext();) {
CompleteInstruction instruction = (CompleteInstruction) iter.next();
Jump jumpInstruction = instruction.fInstruction;
int instructionAddress = fInstructions.indexOf(jumpInstruction);
if (instructionAddress > bodyStartAddress && (instruction.fLabel == null || instruction.fLabel.equals(label))) {
iter.remove();
if (instruction.fIsBreak) {
// jump to the instruction after the last jump
jumpInstruction.setOffset((conditionAddress - instructionAddress) + 1);
}
else {
// jump to the first instruction of the condition
jumpInstruction.setOffset(bodyAddress - instructionAddress);
}
}
}
storeInstruction();
|
| ||||
for (Iterator iter = fCompleteInstructions.iterator(); iter.hasNext();) {
CompleteInstruction instruction = (CompleteInstruction) iter.next();
Jump jumpInstruction = instruction.fInstruction;
int instructionAddress = fInstructions.indexOf(jumpInstruction);
if (instructionAddress > conditionAddress && (instruction.fLabel == null || instruction.fLabel.equals(label))) {
iter.remove();
if (instruction.fIsBreak) {
// jump to the instruction after the last jump
jumpInstruction.setOffset((bodyAddress - instructionAddress) + 1);
}
else {
// jump to the first instruction of the condition
jumpInstruction.setOffset(initAddress - instructionAddress);
}
}
}
storeInstruction();
|
| ||||
// for each pending break or continue instruction which are related to
// this loop, set the offset of the corresponding jump.
for (Iterator iter = fCompleteInstructions.iterator(); iter.hasNext();) {
CompleteInstruction instruction = (CompleteInstruction) iter.next();
Jump jumpInstruction = instruction.fInstruction;
int instructionAddress = fInstructions.indexOf(jumpInstruction);
if (instructionAddress > bodyStartAddress && (instruction.fLabel == null || instruction.fLabel.equals(label))) {
iter.remove();
if (instruction.fIsBreak) {
// jump to the instruction after the last jump
jumpInstruction.setOffset((updatersAddress - instructionAddress) + 1);
}
else {
// jump to the first instruction of the condition
jumpInstruction.setOffset(bodyAddress - instructionAddress);
}
}
}
storeInstruction();
|
| ||||
// for each pending break or continue instruction which are related to
// this loop, set the offset of the corresponding jump.
for (Iterator iter = fCompleteInstructions.iterator(); iter.hasNext();) {
CompleteInstruction instruction = (CompleteInstruction) iter.next();
Jump jumpInstruction = instruction.fInstruction;
int instructionAddress = fInstructions.indexOf(jumpInstruction);
if (instructionAddress > conditionAddress && (instruction.fLabel == null || instruction.fLabel.equals(label))) {
iter.remove();
if (instruction.fIsBreak) {
// jump to the instruction after the last jump
jumpInstruction.setOffset((bodyAddress - instructionAddress) + 2);
}
else {
// jump to the first instruction of the condition
jumpInstruction.setOffset((conditionAddress - condition.getSize()) - instructionAddress);
}
}
}
fCounter += 2;
|
| |||
// for each pending break or continue instruction which are related to
// this loop, set the offset of the corresponding jump.
for (Iterator iter = fCompleteInstructions.iterator(); iter.hasNext();) {
CompleteInstruction instruction = (CompleteInstruction) iter.next();
Jump jumpInstruction = instruction.fInstruction;
int instructionAddress = fInstructions.indexOf(jumpInstruction);
if (instructionAddress > [[#variable92bcff80]]&& (instruction.fLabel == null || instruction.fLabel.equals(label))) {
iter.remove();
if (instruction.fIsBreak) {
// jump to the instruction after the last jump
jumpInstruction.setOffset(( [[#variable587ac580]] - instructionAddress) + [[#variable4d34efe0]]);
}
else {
// jump to the first instruction of the condition
jumpInstruction.setOffset( [[#variable4d34efa0]] - instructionAddress);
}
}
}
[[#variable4d34f180]];
|
| CloneAbstraction |
| Parameter Index | Clone Instance | Parameter Name | Value |
|---|---|---|---|
| 1 | 1 | [[#92bcff80]] | bodyStartAddress |
| 1 | 2 | [[#92bcff80]] | conditionAddress |
| 1 | 3 | [[#92bcff80]] | bodyStartAddress |
| 1 | 4 | [[#92bcff80]] | conditionAddress |
| 2 | 1 | [[#587ac580]] | conditionAddress |
| 2 | 2 | [[#587ac580]] | bodyAddress |
| 2 | 3 | [[#587ac580]] | updatersAddress |
| 2 | 4 | [[#587ac580]] | bodyAddress |
| 3 | 1 | [[#4d34efe0]] | 1 |
| 3 | 2 | [[#4d34efe0]] | 1 |
| 3 | 3 | [[#4d34efe0]] | 1 |
| 3 | 4 | [[#4d34efe0]] | 2 |
| 4 | 1 | [[#4d34efa0]] | bodyAddress |
| 4 | 2 | [[#4d34efa0]] | initAddress |
| 4 | 3 | [[#4d34efa0]] | bodyAddress |
| 4 | 4 | [[#4d34efa0]] | (conditionAddress - condition.getSize()) |
| 5 | 1 | [[#4d34f180]] | storeInstruction() |
| 5 | 2 | [[#4d34f180]] | storeInstruction() |
| 5 | 3 | [[#4d34f180]] | storeInstruction() |
| 5 | 4 | [[#4d34f180]] | fCounter += 2 |