CloneSet804


Previous CloneSetNext CloneSetBack to Main Report
Clone
Mass
Clones in
CloneSet
Parameter
Count
Clone
Similarity
Syntax Category
[Sequence Length]
32250.966statement_sequence_member
Clone AbstractionParameter Bindings
Clone Instance
(Click to see clone)
Line CountSource Line
Source File
132137
plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AND_AND_Expression.java
232140
plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/OR_OR_Expression.java
Clone Instance
1
Line Count
32
Source Line
137
Source File
plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AND_AND_Expression.java

                /*
                 * improving code gen for such a case: boolean b = i < 0 && false since
                 * the label has never been used, we have the inlined value on the
                 * stack.
                 */
                if (valueRequired) {
                        if (leftIsConst && !leftIsTrue) {
                                codeStream.iconst_0();
                                codeStream.updateLastRecordedEndPC(currentScope, codeStream.position);
                        }
                        else   {
                                if (rightIsConst && !rightIsTrue) {
                                        codeStream.iconst_0();
                                        codeStream.updateLastRecordedEndPC(currentScope, codeStream.position);
                                }
                                else   {
                                        codeStream.iconst_1();
                                }
                                if (falseLabel.forwardReferenceCount > 0) {
                                        if ((bits&  IsReturnedValue) != 0) {
                                                codeStream.generateImplicitConversion(this.implicitConversion);
                                                codeStream.generateReturnBytecode(this );
                                                falseLabel.place();
                                                codeStream.iconst_0();
                                        }
                                        else   {
                                                codeStream.goto_(endLabel = new BranchLabel(codeStream));
                                                codeStream.decrStackSize(1);
                                                falseLabel.place();
                                                codeStream.iconst_0();
                                                endLabel.place();
                                        }
                                }
                                else   {
                                        falseLabel.place();
                                }
                        }
                        codeStream.generateImplicitConversion(implicitConversion);
                        codeStream.updateLastRecordedEndPC(currentScope, codeStream.position);
                }
                else   {
                        falseLabel.place();
                }


Clone Instance
2
Line Count
32
Source Line
140
Source File
plugins/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/OR_OR_Expression.java

                /*
                 * improving code gen for such a case: boolean b = i < 0 || true since
                 * the label has never been used, we have the inlined value on the
                 * stack.
                 */
                if (valueRequired) {
                        if (leftIsConst && leftIsTrue) {
                                codeStream.iconst_1();
                                codeStream.updateLastRecordedEndPC(currentScope, codeStream.position);
                        }
                        else   {
                                if (rightIsConst && rightIsTrue) {
                                        codeStream.iconst_1();
                                        codeStream.updateLastRecordedEndPC(currentScope, codeStream.position);
                                }
                                else   {
                                        codeStream.iconst_0();
                                }
                                if (trueLabel.forwardReferenceCount > 0) {
                                        if ((bits&  IsReturnedValue) != 0) {
                                                codeStream.generateImplicitConversion(this.implicitConversion);
                                                codeStream.generateReturnBytecode(this );
                                                trueLabel.place();
                                                codeStream.iconst_1();
                                        }
                                        else   {
                                                codeStream.goto_(endLabel = new BranchLabel(codeStream));
                                                codeStream.decrStackSize(1);
                                                trueLabel.place();
                                                codeStream.iconst_1();
                                                endLabel.place();
                                        }
                                }
                                else   {
                                        trueLabel.place();
                                }
                        }
                        codeStream.generateImplicitConversion(implicitConversion);
                        codeStream.updateLastRecordedEndPC(currentScope, codeStream.position);
                }
                else   {
                        trueLabel.place();
                }


Clone AbstractionParameter Count: 5Parameter Bindings

/*
                 * improving code gen for such a case: boolean b = i < 0 && false since
                 * the label has never been used, we have the inlined value on the
                 * stack.
                 */
/*
                 * improving code gen for such a case: boolean b = i < 0 || true since
                 * the label has never been used, we have the inlined value on the
                 * stack.
                 */
if (valueRequired) {
  if (leftIsConst && [[#variable52be8ae0]]) {
    codeStream. [[#variable52be8a20]]();
    codeStream.updateLastRecordedEndPC(currentScope, codeStream.position);
  }
  else {
    if (rightIsConst && [[#variable52be8980]]) {
      codeStream. [[#variable52be8a20]]();
      codeStream.updateLastRecordedEndPC(currentScope, codeStream.position);
    }
    else {
      codeStream. [[#variable52be89e0]]();
    }
    if ( [[#variable52be89c0]].forwardReferenceCount > 0) {
      if ((bits&IsReturnedValue) != 0) {
        codeStream.generateImplicitConversion(this.implicitConversion);
        codeStream.generateReturnBytecode(this );
         [[#variable52be89c0]].place();
        codeStream. [[#variable52be8a20]]();
      }
      else {
        codeStream.goto_(endLabel = new BranchLabel(codeStream));
        codeStream.decrStackSize(1);
         [[#variable52be89c0]].place();
        codeStream. [[#variable52be8a20]]();
        endLabel.place();
      }
    }
    else {
       [[#variable52be89c0]].place();
    }
  }
  codeStream.generateImplicitConversion(implicitConversion);
  codeStream.updateLastRecordedEndPC(currentScope, codeStream.position);
}
else {
   [[#variable52be89c0]].place();
}
 

CloneAbstraction
Parameter Bindings
Parameter
Index
Clone
Instance
Parameter
Name
Value
11[[#52be8ae0]]
!leftIsTrue 
12[[#52be8ae0]]
leftIsTrue 
21[[#52be8a20]]
iconst_0 
22[[#52be8a20]]
iconst_1 
31[[#52be8980]]
!rightIsTrue 
32[[#52be8980]]
rightIsTrue 
41[[#52be89e0]]
iconst_1 
42[[#52be89e0]]
iconst_0 
51[[#52be89c0]]
falseLabel 
52[[#52be89c0]]
trueLabel