ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
cw.visit(RubyInstanceConfig.JAVA_VERSION, ACC_PUBLIC + ACC_SUPER, namePath, null, p(Object.class), new String[] {p(CompiledBlockCallback19.class)});
cw.visitField(ACC_PRIVATE | ACC_FINAL, "$scriptObject", ci(fieldClass), null, null);
SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw.visitMethod(ACC_PUBLIC, "<init>", sig(Void.TYPE, params(Object.class)), null, null));
mv.start();
mv.aload(0);
mv.invokespecial(p(Object.class), "<init>", sig(void.class));
mv.aload(0);
mv.aload(1);
mv.checkcast(p(fieldClass));
mv.putfield(namePath, "$scriptObject", ci(fieldClass));
mv.voidreturn();
mv.end();
return cw;
ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
cw.visit(RubyInstanceConfig.JAVA_VERSION, ACC_PUBLIC + ACC_SUPER, namePath, null, p(Object.class), new String[] {p(CompiledBlockCallback19.class)});
cw.visitField(ACC_PRIVATE | ACC_FINAL, "$scriptObject", ci(fieldClass), null, null);
SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw.visitMethod(ACC_PUBLIC, "<init>", sig(Void.TYPE, params(Object.class)), null, null));
mv.start();
mv.aload(0);
mv.invokespecial(p(Object.class), "<init>", sig(void.class));
mv.aload(0);
mv.aload(1);
mv.checkcast(p(fieldClass));
mv.putfield(namePath, "$scriptObject", ci(fieldClass));
mv.voidreturn();
mv.end();
return cw;
Clone fragments detected by clone detection tool
File path: /jruby-1.4.0/src/org/jruby/runtime/callback/InvocationCallbackFactory.java
|
|
File path: /jruby-1.4.0/src/org/jruby/internal/runtime/methods/InvocationMethodFactory.java
|
Method name: ClassWriter createBlockCtor19(String, Class)
|
|
Method name: ClassWriter createBlockCtor19(String, Class)
|
Number of AST nodes: 14
|
|
Number of AST nodes: 14
|
|
1 | ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);↵ | | 1 | ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);↵
|
2 | cw.visit(RubyInstanceConfig.JAVA_VERSION, ACC_PUBLIC + ACC_SUPER, namePath, null, p(Object.class), new String[] {p(CompiledBlockCallback19.class)});↵ | | 2 | cw.visit(RubyInstanceConfig.JAVA_VERSION, ACC_PUBLIC + ACC_SUPER, namePath, null, p(Object.class), new String[] {p(CompiledBlockCallback19.class)});↵
|
3 | cw.visitField(ACC_PRIVATE | ACC_FINAL, "$scriptObject", ci(fieldClass), null, null);↵ | | 3 | cw.visitField(ACC_PRIVATE | ACC_FINAL, "$scriptObject", ci(fieldClass), null, null);↵
|
4 | SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw.visitMethod(ACC_PUBLIC, "<init>", sig(Void.TYPE, params(Object.class)), null, null));↵ | | 4 | SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw.visitMethod(ACC_PUBLIC, "<init>", sig(Void.TYPE, params(Object.class)), null, null));↵
|
5 | mv.start();↵ | | 5 | mv.start();↵
|
6 | mv.aload(0);↵ | | 6 | mv.aload(0);↵
|
7 | mv.invokespecial(p(Object.class), "<init>", sig(void.class));↵ | | 7 | mv.invokespecial(p(Object.class), "<init>", sig(void.class));↵
|
8 | mv.aload(0);↵ | | 8 | mv.aload(0);↵
|
9 | mv.aload(1);↵ | | 9 | mv.aload(1);↵
|
10 | mv.checkcast(p(fieldClass));↵ | | 10 | mv.checkcast(p(fieldClass));↵
|
11 | mv.putfield(namePath, "$scriptObject", ci(fieldClass));↵ | | 11 | mv.putfield(namePath, "$scriptObject", ci(fieldClass));↵
|
12 | mv.voidreturn();↵ | | 12 | mv.voidreturn();↵
|
13 | mv.end();↵ | | 13 | mv.end();↵
|
14 | ↵ | | |
|
15 | return cw; | | 14 | return cw;
|
See real code fragment |
|
See real code fragment |
Summary
Number of common nesting structure subtrees | 1 |
Number of refactorable cases | 1 |
Number of non-refactorable cases | 0 |
Time elapsed for finding largest common nesting structure subtrees (ms) | 0.0 |
Clones location | Clones are in different classes |
Number of node comparisons | 107 |
-
{Refactorable}
Mapping Summary
Number of mapped statements | 14 |
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) | 0.0 |
Clone type | Type 1 |
Mapped Statements
ID |
Statement |
|
ID |
Statement |
1 | ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES); | | 1 | ClassWriter cw = new ClassWriter(ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES); |
2 | cw.visit(RubyInstanceConfig.JAVA_VERSION, ACC_PUBLIC + ACC_SUPER, namePath, null, p(Object.class), new String[] {p(CompiledBlockCallback19.class)}); | | 2 | cw.visit(RubyInstanceConfig.JAVA_VERSION, ACC_PUBLIC + ACC_SUPER, namePath, null, p(Object.class), new String[] {p(CompiledBlockCallback19.class)}); |
3 | cw.visitField(ACC_PRIVATE | ACC_FINAL, "$scriptObject", ci(fieldClass), null, null); | | 3 | cw.visitField(ACC_PRIVATE | ACC_FINAL, "$scriptObject", ci(fieldClass), null, null); |
4 | SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw.visitMethod(ACC_PUBLIC, "<init>", sig(Void.TYPE, params(Object.class)), null, null)); | | 4 | SkinnyMethodAdapter mv = new SkinnyMethodAdapter(cw.visitMethod(ACC_PUBLIC, "<init>", sig(Void.TYPE, params(Object.class)), null, null)); |
5 | mv.start(); | | 5 | mv.start(); |
6 | mv.aload(0); | | 6 | mv.aload(0); |
7 | mv.invokespecial(p(Object.class), "<init>", sig(void.class)); | | 7 | mv.invokespecial(p(Object.class), "<init>", sig(void.class)); |
8 | mv.aload(0); | | 8 | mv.aload(0); |
9 | mv.aload(1); | | 9 | mv.aload(1); |
10 | mv.checkcast(p(fieldClass)); | | 10 | mv.checkcast(p(fieldClass)); |
11 | mv.putfield(namePath, "$scriptObject", ci(fieldClass)); | | 11 | mv.putfield(namePath, "$scriptObject", ci(fieldClass)); |
12 | mv.voidreturn(); | | 12 | mv.voidreturn(); |
13 | mv.end(); | | 13 | mv.end(); |
14 | return cw; | | 14 | return cw; |
Precondition Violations (0)
Row |
Violation |