if (con.match != null && refno < 0) { int index = -refno; int save = con.match.getEnd(index); con.match.setEnd(index, offset); int ret = this. matchString (con, op.next, offset, dx, opts); if (ret < 0) con.match.setEnd(index, save); return ret; }
if (con.match != null && refno < 0) { int index = -refno; int save = con.match.getEnd(index); con.match.setEnd(index, offset); int ret = this. matchCharArray (con, op.next, offset, dx, opts); if (ret < 0) con.match.setEnd(index, save); return ret; }
Clone fragments detected by clone detection tool
File path: /emf-2.4.1/src/org/eclipse/emf/ecore/xml/type/internal/RegEx.java File path: /emf-2.4.1/src/org/eclipse/emf/ecore/xml/type/internal/RegEx.java
Method name: int matchString(Context, Op, int, int, int) Method name: int matchCharArray(Context, Op, int, int, int)
Number of AST nodes: 8 Number of AST nodes: 8
1
if (con.match != null && refno < 0) {
1
if (con.match != null && refno < 0) {
2
                      int index = -refno;
2
                      int index = -refno;
3
                      int save = con.match.getEnd(index);
3
                      int save = con.match.getEnd(index);
4
                      con.match.setEnd(index, offset);
4
                      con.match.setEnd(index, offset);
5
                      int ret = this. matchString (con, op.next, offset, dx, opts);
5
                      int ret = this. matchCharArray (con, op.next, offset, dx, opts);
6
                      if (ret < 0)  con.match.setEnd(index, save);
6
                      if (ret < 0)  con.match.setEnd(index, save);
7
                      return ret;
7
                      return ret;
8
                  }
8
                  }
Summary
Number of common nesting structure subtrees1
Number of refactorable cases0
Number of non-refactorable cases1
Time elapsed for finding largest common nesting structure subtrees (ms)0.4
Clones locationClones are declared in the same class
Number of node comparisons42
  1. {Non-refactorable}
    Mapping Summary
    Number of mapped statements8
    Number of unmapped statements in the first code fragment0
    Number of unmapped statements in the second code fragment0
    Time elapsed for statement mapping (ms)31.0
    Clone typeType 2
    Mapped Statements
    ID Statement ID Statement
    253
    else if (con.match != null && refno < 0)
    253
    else if (con.match != null && refno < 0)
    254
    int index = -refno;
    254
    int index = -refno;
    255
    int save = con.match.getEnd(index);
    255
    int save = con.match.getEnd(index);
    256
    con.match.setEnd(index, offset);
    256
    con.match.setEnd(index, offset);
    257
    int ret = this.matchString(con, op.next, offset, dx, opts);
    257
    int ret = this.matchString(con, op.next, offset, dx, opts);
    257
    int ret = this.matchCharArray(con, op.next, offset, dx, opts);
    Differences
    Expression1Expression2Difference
    matchStringmatchCharArrayMETHOD_INVOCATION_NAME_MISMATCH
    Preondition Violations
    Expression this.matchString(con,op.next,offset,dx,opts) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    • Inline private method matchString
    Expression this.matchCharArray(con,op.next,offset,dx,opts) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    • Inline private method matchCharArray
    257
    int ret = this.matchCharArray(con, op.next, offset, dx, opts);
    258
    if (ret < 0)
    258
    if (ret < 0)
    259
    con.match.setEnd(index, save);
    259
    con.match.setEnd(index, save);
    260
    return ret;
    260
    return ret;
    Precondition Violations (2)
    Row Violation
    1Expression this.matchString(con,op.next,offset,dx,opts) cannot be parameterized, because it has dependencies to/from statements that will be extracted
    2Expression this.matchCharArray(con,op.next,offset,dx,opts) cannot be parameterized, because it has dependencies to/from statements that will be extracted