From 81c8764fc63fffcb2bc51bbfa4a548d54630a286 Mon Sep 17 00:00:00 2001 From: JanUlrich Date: Thu, 23 Jun 2016 16:49:30 +0200 Subject: [PATCH] =?UTF-8?q?Aufr=C3=A4umen,=20neue=20BCEL-Version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BCEL/bcelifier/BooleanValue.java | 6 -- BCEL/bcelifier/BooleanValueCreator.java | 63 ---------------- BCEL/bcelifier/FieldDeclaration.java | 11 --- BCEL/bcelifier/FieldDeclarationCreator.java | 68 ----------------- BCEL/bcelifier/IfStatement.java | 12 --- BCEL/bcelifier/IfStatementCreator.java | 71 ------------------ BCEL/bcelifier/IntLiteral.class | Bin 355 -> 0 bytes BCEL/bcelifier/IntLiteral.java | 7 -- BCEL/bcelifier/IntLiteralCreator.java | 56 -------------- BCEL/bcelifier/JavaToBCEL.java | 43 ----------- BCEL/bcelifier/Lambda1.class | Bin 982 -> 0 bytes BCEL/bcelifier/Lambda1.class.toGenerate | Bin 982 -> 0 bytes BCEL/bcelifier/Lambda1.java | 8 -- BCEL/bcelifier/Lambda1Creator.java | 0 BCEL/bcelifier/LocalVarAccess.java | 10 --- BCEL/bcelifier/LocalVarAccessCreator.java | 61 --------------- BCEL/bcelifier/MethodCall.class | Bin 397 -> 0 bytes BCEL/bcelifier/MethodCall.java | 12 --- BCEL/bcelifier/MethodCallCreator.java | 70 ----------------- BCEL/bcelifier/NewClass.java | 10 --- BCEL/bcelifier/NewClassCreator.java | 60 --------------- BCEL/bcelifier/Null.java | 7 -- BCEL/bcelifier/NullCreator.java | 53 ------------- BCEL/bcelifier/This.class | Bin 263 -> 0 bytes BCEL/bcelifier/This.java | 8 -- BCEL/bcelifier/ThisCreator.java | 55 -------------- BCEL/bcelifier/Wildcard.java | 5 -- BCEL/bcelifier/WildcardCreator.java | 50 ------------ lib/commons-bcel6-6.0-SNAPSHOT.jar | Bin 691229 -> 691302 bytes .../bytecode/MethodGenerator.java | 1 + .../typeinference/EinzelElement.java | 4 +- test/bytecode/WhileTest.jav | 1 + test/bytecode/WhileTest.java | 1 - 33 files changed, 4 insertions(+), 749 deletions(-) delete mode 100644 BCEL/bcelifier/BooleanValue.java delete mode 100644 BCEL/bcelifier/BooleanValueCreator.java delete mode 100644 BCEL/bcelifier/FieldDeclaration.java delete mode 100644 BCEL/bcelifier/FieldDeclarationCreator.java delete mode 100644 BCEL/bcelifier/IfStatement.java delete mode 100644 BCEL/bcelifier/IfStatementCreator.java delete mode 100644 BCEL/bcelifier/IntLiteral.class delete mode 100644 BCEL/bcelifier/IntLiteral.java delete mode 100644 BCEL/bcelifier/IntLiteralCreator.java delete mode 100644 BCEL/bcelifier/JavaToBCEL.java delete mode 100644 BCEL/bcelifier/Lambda1.class delete mode 100644 BCEL/bcelifier/Lambda1.class.toGenerate delete mode 100644 BCEL/bcelifier/Lambda1.java delete mode 100644 BCEL/bcelifier/Lambda1Creator.java delete mode 100644 BCEL/bcelifier/LocalVarAccess.java delete mode 100644 BCEL/bcelifier/LocalVarAccessCreator.java delete mode 100644 BCEL/bcelifier/MethodCall.class delete mode 100644 BCEL/bcelifier/MethodCall.java delete mode 100644 BCEL/bcelifier/MethodCallCreator.java delete mode 100644 BCEL/bcelifier/NewClass.java delete mode 100644 BCEL/bcelifier/NewClassCreator.java delete mode 100644 BCEL/bcelifier/Null.java delete mode 100644 BCEL/bcelifier/NullCreator.java delete mode 100644 BCEL/bcelifier/This.class delete mode 100644 BCEL/bcelifier/This.java delete mode 100644 BCEL/bcelifier/ThisCreator.java delete mode 100644 BCEL/bcelifier/Wildcard.java delete mode 100644 BCEL/bcelifier/WildcardCreator.java diff --git a/BCEL/bcelifier/BooleanValue.java b/BCEL/bcelifier/BooleanValue.java deleted file mode 100644 index f6859aeb..00000000 --- a/BCEL/bcelifier/BooleanValue.java +++ /dev/null @@ -1,6 +0,0 @@ -package bcelifier; - -public class BooleanValue { - Boolean c = true; - Boolean b = c.booleanValue(); -} diff --git a/BCEL/bcelifier/BooleanValueCreator.java b/BCEL/bcelifier/BooleanValueCreator.java deleted file mode 100644 index d019f948..00000000 --- a/BCEL/bcelifier/BooleanValueCreator.java +++ /dev/null @@ -1,63 +0,0 @@ -package bcelifier; - -import org.apache.commons.bcel6.generic.*; -import org.apache.commons.bcel6.classfile.*; -import org.apache.commons.bcel6.*; -import java.io.*; - -public class BooleanValueCreator implements Constants { - private InstructionFactory _factory; - private ConstantPoolGen _cp; - private ClassGen _cg; - - public BooleanValueCreator() { - _cg = new ClassGen("bcelifier.BooleanValue", "java.lang.Object", "BooleanValue.java", ACC_PUBLIC | ACC_SUPER, new String[] { }); - - _cp = _cg.getConstantPool(); - _factory = new InstructionFactory(_cg, _cp); - } - - public void create(OutputStream out) throws IOException { - createFields(); - createMethod_0(); - _cg.getJavaClass().dump(out); - } - - private void createFields() { - FieldGen field; - - field = new FieldGen(0, new ObjectType("java.lang.Boolean"), "c", _cp); - _cg.addField(field.getField()); - - field = new FieldGen(0, new ObjectType("java.lang.Boolean"), "b", _cp); - _cg.addField(field.getField()); - } - - private void createMethod_0() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "", "bcelifier.BooleanValue", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(new PUSH(_cp, 1)); - il.append(_factory.createInvoke("java.lang.Boolean", "valueOf", new ObjectType("java.lang.Boolean"), new Type[] { Type.BOOLEAN }, Constants.INVOKESTATIC)); - il.append(_factory.createFieldAccess("bcelifier.BooleanValue", "c", new ObjectType("java.lang.Boolean"), Constants.PUTFIELD)); - InstructionHandle ih_12 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createFieldAccess("bcelifier.BooleanValue", "c", new ObjectType("java.lang.Boolean"), Constants.GETFIELD)); - il.append(_factory.createInvoke("java.lang.Boolean", "booleanValue", Type.BOOLEAN, Type.NO_ARGS, Constants.INVOKEVIRTUAL)); - il.append(_factory.createInvoke("java.lang.Boolean", "valueOf", new ObjectType("java.lang.Boolean"), new Type[] { Type.BOOLEAN }, Constants.INVOKESTATIC)); - il.append(_factory.createFieldAccess("bcelifier.BooleanValue", "b", new ObjectType("java.lang.Boolean"), Constants.PUTFIELD)); - InstructionHandle ih_26 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - public static void main(String[] args) throws Exception { - bcelifier.BooleanValueCreator creator = new bcelifier.BooleanValueCreator(); - creator.create(new FileOutputStream("bcelifier.BooleanValue.class")); - } -} diff --git a/BCEL/bcelifier/FieldDeclaration.java b/BCEL/bcelifier/FieldDeclaration.java deleted file mode 100644 index 00fb467d..00000000 --- a/BCEL/bcelifier/FieldDeclaration.java +++ /dev/null @@ -1,11 +0,0 @@ -package bcelifier; - -public class FieldDeclaration { - - Integer field = methode(); - - Integer methode() - { - return field; - } -} diff --git a/BCEL/bcelifier/FieldDeclarationCreator.java b/BCEL/bcelifier/FieldDeclarationCreator.java deleted file mode 100644 index 21553f53..00000000 --- a/BCEL/bcelifier/FieldDeclarationCreator.java +++ /dev/null @@ -1,68 +0,0 @@ -package bcelifier; - -import org.apache.commons.bcel6.generic.*; -import org.apache.commons.bcel6.classfile.*; -import org.apache.commons.bcel6.*; -import java.io.*; - -public class FieldDeclarationCreator implements Constants { - private InstructionFactory _factory; - private ConstantPoolGen _cp; - private ClassGen _cg; - - public FieldDeclarationCreator() { - _cg = new ClassGen("bcelifier.FieldDeclaration", "java.lang.Object", "FieldDeclaration.java", ACC_PUBLIC | ACC_SUPER, new String[] { }); - - _cp = _cg.getConstantPool(); - _factory = new InstructionFactory(_cg, _cp); - } - - public void create(OutputStream out) throws IOException { - createFields(); - createMethod_0(); - createMethod_1(); - _cg.getJavaClass().dump(out); - } - - private void createFields() { - FieldGen field; - - field = new FieldGen(0, new ObjectType("java.lang.Integer"), "field", _cp); - _cg.addField(field.getField()); - } - - private void createMethod_0() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "", "bcelifier.FieldDeclaration", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("bcelifier.FieldDeclaration", "methode", new ObjectType("java.lang.Integer"), Type.NO_ARGS, Constants.INVOKEVIRTUAL)); - il.append(_factory.createFieldAccess("bcelifier.FieldDeclaration", "field", new ObjectType("java.lang.Integer"), Constants.PUTFIELD)); - InstructionHandle ih_12 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - private void createMethod_1() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(0, new ObjectType("java.lang.Integer"), Type.NO_ARGS, new String[] { }, "methode", "bcelifier.FieldDeclaration", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createFieldAccess("bcelifier.FieldDeclaration", "field", new ObjectType("java.lang.Integer"), Constants.GETFIELD)); - InstructionHandle ih_4 = il.append(_factory.createReturn(Type.OBJECT)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - public static void main(String[] args) throws Exception { - bcelifier.FieldDeclarationCreator creator = new bcelifier.FieldDeclarationCreator(); - creator.create(new FileOutputStream("bcelifier.FieldDeclaration.class")); - } -} diff --git a/BCEL/bcelifier/IfStatement.java b/BCEL/bcelifier/IfStatement.java deleted file mode 100644 index 8f16e0d4..00000000 --- a/BCEL/bcelifier/IfStatement.java +++ /dev/null @@ -1,12 +0,0 @@ -package bcelifier; - -class IfStatement{ - Integer methode(Boolean b){ - if(b){ - return 1; - }else{ - return 2; - } - } - -} \ No newline at end of file diff --git a/BCEL/bcelifier/IfStatementCreator.java b/BCEL/bcelifier/IfStatementCreator.java deleted file mode 100644 index 88b43e39..00000000 --- a/BCEL/bcelifier/IfStatementCreator.java +++ /dev/null @@ -1,71 +0,0 @@ -package bcelifier; - -import org.apache.commons.bcel6.generic.*; - -import de.dhbwstuttgart.syntaxtree.type.RefType; -import de.dhbwstuttgart.bytecode.ClassGenerator; -import de.dhbwstuttgart.bytecode.MethodGenerator; -import de.dhbwstuttgart.typeinference.TypeinferenceResults; - -import org.apache.commons.bcel6.*; -import java.io.*; - -public class IfStatementCreator { - private InstructionFactory _factory; - private ConstantPoolGen _cp; - private ClassGenerator _cg; - - public IfStatementCreator() { - - TypeinferenceResults typeinferenceResults = null; - _cg = new ClassGenerator("bcelifier.IfStatement", new RefType("java.lang.Object", null, 0), "IfStatement.java", Const.ACC_SUPER, new String[] { }, typeinferenceResults); - - _cp = _cg.getConstantPool(); - _factory = new InstructionFactory(_cg, _cp); - } - - public void create(OutputStream out) throws IOException { - createMethod_0(); - createMethod_1(); - _cg.getJavaClass().dump(out); - } - - private void createMethod_0() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGenerator(0, Type.VOID, new Type[] { new ObjectType("java.lang.Boolean") }, new String[] { "arg0" }, "", "bcelifier.IfStatement", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Const.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - } - - private void createMethod_1() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGenerator(0, new ObjectType("java.lang.Integer"), new Type[] { new ObjectType("java.lang.Boolean") }, new String[] { "arg0" }, "methode", "bcelifier.IfStatement", il, _cp); - - il.append(InstructionFactory.createLoad(Type.OBJECT, 1)); - il.append(_factory.createInvoke("java.lang.Boolean", "booleanValue", Type.BOOLEAN, Type.NO_ARGS, Const.INVOKEVIRTUAL)); - BranchInstruction ifeq_4 = InstructionFactory.createBranchInstruction(Const.IFEQ, null); - il.append(ifeq_4); - il.append(new PUSH(_cp, 1)); - il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Const.INVOKESTATIC)); - il.append(InstructionFactory.createReturn(Type.OBJECT)); - InstructionHandle ih_12 = il.append(new PUSH(_cp, 2)); - il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Const.INVOKESTATIC)); - il.append(InstructionFactory.createReturn(Type.OBJECT)); - ifeq_4.setTarget(ih_12); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - } - - public static void main(String[] args) throws Exception { - bcelifier.IfStatementCreator creator = new bcelifier.IfStatementCreator(); - creator.create(new FileOutputStream("bcelifier.IfStatement.class")); - - System.out.println("bcelifier.IfStatement.class"); - } -} diff --git a/BCEL/bcelifier/IntLiteral.class b/BCEL/bcelifier/IntLiteral.class deleted file mode 100644 index de65701a97c776ab2ec2c299a26b85d011f111ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 355 zcmZvYK}*9x5QX0)O;%$xZEbr~@RoY87jKFeK_~<(DBd@5TDNRd2uXjJo)iyWy!oTV z*;1$n_b~J3?Z@oQe*b)Y0yxJYLVyDw__~XbpsmnR=n}$9Q=0mU;HSe!LhE|@#DpX> zCEqrSoT~?&TXEEa>*w`dKOJUsz0xDA%h_mL);#0tf)L#=o2uX&OumK6}ZQn^g=b|Qbw$|n;nPsJI!;>jtkdFTw1}A9Ay6$+8 y9ib%dNOdHcBnPK&pjQ!uU5Vk^l+QtgJ<$$5mh8~5>%GH&5%rf1q>9D!u>T9*%|_b* diff --git a/BCEL/bcelifier/IntLiteral.java b/BCEL/bcelifier/IntLiteral.java deleted file mode 100644 index a4d38fe9..00000000 --- a/BCEL/bcelifier/IntLiteral.java +++ /dev/null @@ -1,7 +0,0 @@ -package bcelifier; - -public class IntLiteral { - Integer methode(){ - return 50000; - } -} diff --git a/BCEL/bcelifier/IntLiteralCreator.java b/BCEL/bcelifier/IntLiteralCreator.java deleted file mode 100644 index 00ed284b..00000000 --- a/BCEL/bcelifier/IntLiteralCreator.java +++ /dev/null @@ -1,56 +0,0 @@ -package bcelifier; - -import org.apache.commons.bcel6.generic.*; -import org.apache.commons.bcel6.classfile.*; -import org.apache.commons.bcel6.*; -import java.io.*; - -public class IntLiteralCreator implements Constants { - private InstructionFactory _factory; - private ConstantPoolGen _cp; - private ClassGen _cg; - - public IntLiteralCreator() { - _cg = new ClassGen("bcelifier.IntLiteral", "java.lang.Object", "IntLiteral.java", ACC_PUBLIC | ACC_SUPER, new String[] { }); - - _cp = _cg.getConstantPool(); - _factory = new InstructionFactory(_cg, _cp); - } - - public void create(OutputStream out) throws IOException { - createMethod_0(); - createMethod_1(); - _cg.getJavaClass().dump(out); - } - - private void createMethod_0() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "", "bcelifier.IntLiteral", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - private void createMethod_1() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(0, new ObjectType("java.lang.Integer"), Type.NO_ARGS, new String[] { }, "methode", "bcelifier.IntLiteral", il, _cp); - - InstructionHandle ih_0 = il.append(new PUSH(_cp, 50000)); - il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Constants.INVOKESTATIC)); - InstructionHandle ih_5 = il.append(_factory.createReturn(Type.OBJECT)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - public static void main(String[] args) throws Exception { - bcelifier.IntLiteralCreator creator = new bcelifier.IntLiteralCreator(); - creator.create(new FileOutputStream("bcelifier.IntLiteral.class")); - } -} diff --git a/BCEL/bcelifier/JavaToBCEL.java b/BCEL/bcelifier/JavaToBCEL.java deleted file mode 100644 index 0d162b00..00000000 --- a/BCEL/bcelifier/JavaToBCEL.java +++ /dev/null @@ -1,43 +0,0 @@ -package bcelifier; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.PrintWriter; -import java.nio.file.Files; -import java.nio.file.OpenOption; -import java.nio.file.Path; - -import org.apache.commons.bcel6.classfile.ClassFormatException; -import org.apache.commons.bcel6.classfile.ClassParser; -import org.apache.commons.bcel6.classfile.JavaClass; -import org.apache.commons.bcel6.util.BCELifier; - -public class JavaToBCEL { - - public final static String rootDirectory = System.getProperty("user.dir")+"/BCEL/bcelifier/"; - - public static void main(String args[]){ - new JavaToBCEL(); - } - - public JavaToBCEL(){ - try { - //new BCELifier(new ClassParser(rootDirectory+"Lambda1.class").parse(), new FileOutputStream(new File(rootDirectory+"Lambda1Creator.java"))).start(); - //new BCELifier(new ClassParser(rootDirectory+"This.class").parse(), new FileOutputStream(new File(rootDirectory+"ThisCreator.java"))).start(); - //new BCELifier(new ClassParser(rootDirectory+"IntLiteral.class").parse(), new FileOutputStream(new File(rootDirectory+"IntLiteralCreator.java"))).start(); - //new BCELifier(new ClassParser(rootDirectory+"MethodCall.class").parse(), new FileOutputStream(new File(rootDirectory+"MethodCallCreator.java"))).start(); - //new BCELifier(new ClassParser(rootDirectory+"FieldDeclaration.class").parse(), new FileOutputStream(new File(rootDirectory+"FieldDeclarationCreator.java"))).start(); - //new BCELifier(new ClassParser(rootDirectory+"Null.class").parse(), new FileOutputStream(new File(rootDirectory+"NullCreator.java"))).start(); - //new BCELifier(new ClassParser(rootDirectory+"LocalVarAccess.class").parse(), new FileOutputStream(new File(rootDirectory+"LocalVarAccessCreator.java"))).start(); - //new BCELifier(new ClassParser(rootDirectory+"Wildcard.class").parse(), new FileOutputStream(new File(rootDirectory+"WildcardCreator.java"))).start(); - //new BCELifier(new ClassParser(rootDirectory+"BooleanValue.class").parse(), new FileOutputStream(new File(rootDirectory+"BooleanValueCreator.java"))).start(); - //new BCELifier(new ClassParser(rootDirectory+"NewClass.class").parse(), new FileOutputStream(new File(rootDirectory+"NewClassCreator.java"))).start(); - new BCELifier(new ClassParser(rootDirectory+"IfStatement.class").parse(), new FileOutputStream(new File(rootDirectory+"IfStatementCreator.java"))).start(); - } catch (ClassFormatException | IOException e) { - e.printStackTrace(); - } - } - - -} diff --git a/BCEL/bcelifier/Lambda1.class b/BCEL/bcelifier/Lambda1.class deleted file mode 100644 index c82ddc6f846f03d4d1a3a34518db83997a3f2ae5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 982 zcmbVLO>fgc5Ph38-qbZDZAhU&KPYKQ0yGqH3*tZ|1X7@gRK0JKZM&_rj_h@%{43x9 zQV;w9#BV~(#zt`|^nedLv$JpB%)DKH|9Somz%x8`;h?-kesvzpxar~+Ryb~R++lE@ zE3M26hJ3woz%bVdhLWMwRa(A_M|~OYi@r}0K9c5mdbV6|bWg;YX!$}PwLZjJTSS|o z?2A!ceqewX~gTO>46yvv3{;1^OZW+ZA$Et@l ztaEI5xQ9)S`yOi8Vp!}Cq^}N@3|lE7(aaj!>z~Mhaj}gDE()mAWMQls8ujj_#P+`? znbGwok&z=J31Y)gO(s`C>wT!S>6uW95shA%CR_}YW@8KTsd%-Xku2%3-8kTAcxYnB z!!@hL=B%pHXThmV=Obmrp%|DToG>hqy1#cEB(c*Cg41|R^1jhph8#m9{Mt>C5i1!XEcw}N7=}Q#Qn)w{@-Cz^6K2|U8H3@!uNa1$Tr6=!`3Bz{x%Q8 z+SNFEO$GWP?3V{!5{k6W({7b4BU@;G1^Yw}yfgc5Ph38-qbZDZAhU&KPYKQ0yGqH3*tZ|1X7@gRK0JKZM&_rj_h@%{43x9 zQV;w9#BV~(#zt`|^nedLv$JpB%)DKH|9Somz%x8`;h?-kesvzpxar~+Ryb~R++lE@ zE3M26hJ3woz%bVdhLWMwRa(A_M|~OYi@r}0K9c5mdbV6|bWg;YX!$}PwLZjJTSS|o z?2A!ceqewX~gTO>46yvv3{;1^OZW+ZA$Et@l ztaEI5xQ9)S`yOi8Vp!}Cq^}N@3|lE7(aaj!>z~Mhaj}gDE()mAWMQls8ujj_#P+`? znbGwok&z=J31Y)gO(s`C>wT!S>6uW95shA%CR_}YW@8KTsd%-Xku2%3-8kTAcxYnB z!!@hL=B%pHXThmV=Obmrp%|DToG>hqy1#cEB(c*Cg41|R^1jhph8#m9{Mt>C5i1!XEcw}N7=}Q#Qn)w{@-Cz^6K2|U8H3@!uNa1$Tr6=!`3Bz{x%Q8 z+SNFEO$GWP?3V{!5{k6W({7b4BU@;G1^Yw}ySystem.out.println(this); - } -} diff --git a/BCEL/bcelifier/Lambda1Creator.java b/BCEL/bcelifier/Lambda1Creator.java deleted file mode 100644 index e69de29b..00000000 diff --git a/BCEL/bcelifier/LocalVarAccess.java b/BCEL/bcelifier/LocalVarAccess.java deleted file mode 100644 index 116becbc..00000000 --- a/BCEL/bcelifier/LocalVarAccess.java +++ /dev/null @@ -1,10 +0,0 @@ -package bcelifier; - -public class LocalVarAccess { - Integer methode(Integer i){ - Integer var; - var = 10 + i; - return var; - } - -} diff --git a/BCEL/bcelifier/LocalVarAccessCreator.java b/BCEL/bcelifier/LocalVarAccessCreator.java deleted file mode 100644 index b85fcadb..00000000 --- a/BCEL/bcelifier/LocalVarAccessCreator.java +++ /dev/null @@ -1,61 +0,0 @@ -package bcelifier; - -import org.apache.commons.bcel6.generic.*; -import org.apache.commons.bcel6.classfile.*; -import org.apache.commons.bcel6.*; -import java.io.*; - -public class LocalVarAccessCreator implements Constants { - private InstructionFactory _factory; - private ConstantPoolGen _cp; - private ClassGen _cg; - - public LocalVarAccessCreator() { - _cg = new ClassGen("bcelifier.LocalVarAccess", "java.lang.Object", "LocalVarAccess.java", ACC_PUBLIC | ACC_SUPER, new String[] { }); - - _cp = _cg.getConstantPool(); - _factory = new InstructionFactory(_cg, _cp); - } - - public void create(OutputStream out) throws IOException { - createMethod_0(); - createMethod_1(); - _cg.getJavaClass().dump(out); - } - - private void createMethod_0() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "", "bcelifier.LocalVarAccess", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - private void createMethod_1() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(0, new ObjectType("java.lang.Integer"), new Type[] { new ObjectType("java.lang.Integer") }, new String[] { "arg0" }, "methode", "bcelifier.LocalVarAccess", il, _cp); - - InstructionHandle ih_0 = il.append(new PUSH(_cp, 10)); - il.append(_factory.createLoad(Type.OBJECT, 1)); - il.append(_factory.createInvoke("java.lang.Integer", "intValue", Type.INT, Type.NO_ARGS, Constants.INVOKEVIRTUAL)); - il.append(InstructionConstants.IADD); - il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Constants.INVOKESTATIC)); - il.append(_factory.createStore(Type.OBJECT, 2)); - InstructionHandle ih_11 = il.append(_factory.createLoad(Type.OBJECT, 2)); - InstructionHandle ih_12 = il.append(_factory.createReturn(Type.OBJECT)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - public static void main(String[] args) throws Exception { - bcelifier.LocalVarAccessCreator creator = new bcelifier.LocalVarAccessCreator(); - creator.create(new FileOutputStream("bcelifier.LocalVarAccess.class")); - } -} diff --git a/BCEL/bcelifier/MethodCall.class b/BCEL/bcelifier/MethodCall.class deleted file mode 100644 index c37c7d5ba6790a5cd7ae2d2d91671f35b6267391..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 397 zcmZ8cO-sW-5Pg%ct=rhtS}h(tc&jZK5O0c?f~TsW;(ZfW-I8u0B>pciiXQv{{wQ%a zR06Uv^XBcFH#6TqpI-n@Fp>z7NCfD2v4w%aw!n}Oof&JYbAmrUye9;+)q^G^b7S>Y zz07oZr?P?>vDDRb^VeCUW5Q@WU#J(A7Ro-QH?_4+d+L1T?W!(wePLX0a@q9GR8br` zeT)bqhJ+B", "bcelifier.MethodCall", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - private void createMethod_1() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(0, Type.VOID, Type.NO_ARGS, new String[] { }, "methode", "bcelifier.MethodCall", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - private void createMethod_2() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(0, Type.VOID, new Type[] { new ObjectType("java.lang.Runnable") }, new String[] { "arg0" }, "methode2", "bcelifier.MethodCall", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("bcelifier.MethodCall", "methode", Type.VOID, Type.NO_ARGS, Constants.INVOKEVIRTUAL)); - InstructionHandle ih_4 = il.append(_factory.createLoad(Type.OBJECT, 1)); - il.append(_factory.createInvoke("java.lang.Runnable", "run", Type.VOID, Type.NO_ARGS, Constants.INVOKEINTERFACE)); - InstructionHandle ih_10 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - public static void main(String[] args) throws Exception { - bcelifier.MethodCallCreator creator = new bcelifier.MethodCallCreator(); - creator.create(new FileOutputStream("bcelifier.MethodCall.class")); - } -} diff --git a/BCEL/bcelifier/NewClass.java b/BCEL/bcelifier/NewClass.java deleted file mode 100644 index af0d2eae..00000000 --- a/BCEL/bcelifier/NewClass.java +++ /dev/null @@ -1,10 +0,0 @@ -package bcelifier; - - -public class NewClass { - public NewClass(Integer i){} - void methode2(){ - new NewClass(1); - } -} - diff --git a/BCEL/bcelifier/NewClassCreator.java b/BCEL/bcelifier/NewClassCreator.java deleted file mode 100644 index 3f20eed3..00000000 --- a/BCEL/bcelifier/NewClassCreator.java +++ /dev/null @@ -1,60 +0,0 @@ -package bcelifier; - -import org.apache.commons.bcel6.generic.*; -import org.apache.commons.bcel6.classfile.*; -import org.apache.commons.bcel6.*; -import java.io.*; - -public class NewClassCreator implements Constants { - private InstructionFactory _factory; - private ConstantPoolGen _cp; - private ClassGen _cg; - - public NewClassCreator() { - _cg = new ClassGen("bcelifier.NewClass", "java.lang.Object", "NewClass.java", ACC_PUBLIC | ACC_SUPER, new String[] { }); - - _cp = _cg.getConstantPool(); - _factory = new InstructionFactory(_cg, _cp); - } - - public void create(OutputStream out) throws IOException { - createMethod_0(); - createMethod_1(); - _cg.getJavaClass().dump(out); - } - - private void createMethod_0() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, new Type[] { new ObjectType("java.lang.Integer") }, new String[] { "arg0" }, "", "bcelifier.NewClass", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - private void createMethod_1() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(0, Type.VOID, Type.NO_ARGS, new String[] { }, "methode2", "bcelifier.NewClass", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createNew("bcelifier.NewClass")); - il.append(InstructionConstants.DUP); - il.append(new PUSH(_cp, 1)); - il.append(_factory.createInvoke("java.lang.Integer", "valueOf", new ObjectType("java.lang.Integer"), new Type[] { Type.INT }, Constants.INVOKESTATIC)); - il.append(_factory.createInvoke("bcelifier.NewClass", "", Type.VOID, new Type[] { new ObjectType("java.lang.Integer") }, Constants.INVOKESPECIAL)); - il.append(InstructionConstants.POP); - InstructionHandle ih_12 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - public static void main(String[] args) throws Exception { - bcelifier.NewClassCreator creator = new bcelifier.NewClassCreator(); - creator.create(new FileOutputStream("bcelifier.NewClass.class")); - } -} diff --git a/BCEL/bcelifier/Null.java b/BCEL/bcelifier/Null.java deleted file mode 100644 index d7329b7c..00000000 --- a/BCEL/bcelifier/Null.java +++ /dev/null @@ -1,7 +0,0 @@ -package bcelifier; - -public class Null { - - Integer i = null; - -} diff --git a/BCEL/bcelifier/NullCreator.java b/BCEL/bcelifier/NullCreator.java deleted file mode 100644 index d7960def..00000000 --- a/BCEL/bcelifier/NullCreator.java +++ /dev/null @@ -1,53 +0,0 @@ -package bcelifier; - -import org.apache.commons.bcel6.generic.*; -import org.apache.commons.bcel6.classfile.*; -import org.apache.commons.bcel6.*; -import java.io.*; - -public class NullCreator implements Constants { - private InstructionFactory _factory; - private ConstantPoolGen _cp; - private ClassGen _cg; - - public NullCreator() { - _cg = new ClassGen("bcelifier.Null", "java.lang.Object", "Null.java", ACC_PUBLIC | ACC_SUPER, new String[] { }); - - _cp = _cg.getConstantPool(); - _factory = new InstructionFactory(_cg, _cp); - } - - public void create(OutputStream out) throws IOException { - createFields(); - createMethod_0(); - _cg.getJavaClass().dump(out); - } - - private void createFields() { - FieldGen field; - - field = new FieldGen(0, new ObjectType("java.lang.Integer"), "i", _cp); - _cg.addField(field.getField()); - } - - private void createMethod_0() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "", "bcelifier.Null", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(InstructionConstants.ACONST_NULL); - il.append(_factory.createFieldAccess("bcelifier.Null", "i", new ObjectType("java.lang.Integer"), Constants.PUTFIELD)); - InstructionHandle ih_9 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - public static void main(String[] args) throws Exception { - bcelifier.NullCreator creator = new bcelifier.NullCreator(); - creator.create(new FileOutputStream("bcelifier.Null.class")); - } -} diff --git a/BCEL/bcelifier/This.class b/BCEL/bcelifier/This.class deleted file mode 100644 index 76fe2494dcf8bff25d6482660902d9e1c415a6b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 263 zcmY+8KM%oB6vfXiZMFW!C^6W|po@)IB&LRe*xPz|Qk7KsTuc&!58y+IdriFI-22Y? z-Q>L9k0*cu>MjbX*r?j55v-9;bv`B(yzYunoE+DRP!DvfX6HksvSk=0?AQmD@4i{n z>jqJ*61~wX^Ork)8WP;a@tnnKs)cpL?C--%SV0jcq4v)c8WQ?Rm~Q=fv{!MC4h*g( t&j8ne$!hVh&69YVy*uc}3s+&azNQ?M;P5VJi>IJQ@5=hi3GGUP@&_k}Et>!U diff --git a/BCEL/bcelifier/This.java b/BCEL/bcelifier/This.java deleted file mode 100644 index 3d239478..00000000 --- a/BCEL/bcelifier/This.java +++ /dev/null @@ -1,8 +0,0 @@ -package bcelifier; - -public class This { - - This methode(){ - return this; - } -} diff --git a/BCEL/bcelifier/ThisCreator.java b/BCEL/bcelifier/ThisCreator.java deleted file mode 100644 index 68cc58aa..00000000 --- a/BCEL/bcelifier/ThisCreator.java +++ /dev/null @@ -1,55 +0,0 @@ -package bcelifier; - -import org.apache.commons.bcel6.generic.*; -import org.apache.commons.bcel6.classfile.*; -import org.apache.commons.bcel6.*; -import java.io.*; - -public class ThisCreator implements Constants { - private InstructionFactory _factory; - private ConstantPoolGen _cp; - private ClassGen _cg; - - public ThisCreator() { - _cg = new ClassGen("bcelifier.This", "java.lang.Object", "This.java", ACC_PUBLIC | ACC_SUPER, new String[] { }); - - _cp = _cg.getConstantPool(); - _factory = new InstructionFactory(_cg, _cp); - } - - public void create(OutputStream out) throws IOException { - createMethod_0(); - createMethod_1(); - _cg.getJavaClass().dump(out); - } - - private void createMethod_0() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "", "bcelifier.This", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - private void createMethod_1() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(0, new ObjectType("bcelifier.This"), Type.NO_ARGS, new String[] { }, "methode", "bcelifier.This", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - InstructionHandle ih_1 = il.append(_factory.createReturn(Type.OBJECT)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - public static void main(String[] args) throws Exception { - bcelifier.ThisCreator creator = new bcelifier.ThisCreator(); - creator.create(new FileOutputStream("bcelifier.This.class")); - } -} diff --git a/BCEL/bcelifier/Wildcard.java b/BCEL/bcelifier/Wildcard.java deleted file mode 100644 index b65144ac..00000000 --- a/BCEL/bcelifier/Wildcard.java +++ /dev/null @@ -1,5 +0,0 @@ -package bcelifier; - -public class Wildcard { - Wildcard a; -} diff --git a/BCEL/bcelifier/WildcardCreator.java b/BCEL/bcelifier/WildcardCreator.java deleted file mode 100644 index 6f83ff50..00000000 --- a/BCEL/bcelifier/WildcardCreator.java +++ /dev/null @@ -1,50 +0,0 @@ -package bcelifier; - -import org.apache.commons.bcel6.generic.*; -import org.apache.commons.bcel6.classfile.*; -import org.apache.commons.bcel6.*; -import java.io.*; - -public class WildcardCreator implements Constants { - private InstructionFactory _factory; - private ConstantPoolGen _cp; - private ClassGen _cg; - - public WildcardCreator() { - _cg = new ClassGen("bcelifier.Wildcard", "java.lang.Object", "Wildcard.java", ACC_PUBLIC | ACC_SUPER, new String[] { }); - - _cp = _cg.getConstantPool(); - _factory = new InstructionFactory(_cg, _cp); - } - - public void create(OutputStream out) throws IOException { - createFields(); - createMethod_0(); - _cg.getJavaClass().dump(out); - } - - private void createFields() { - FieldGen field; - - field = new FieldGen(0, new ObjectType("bcelifier.Wildcard"), "a", _cp); - _cg.addField(field.getField()); - } - - private void createMethod_0() { - InstructionList il = new InstructionList(); - MethodGen method = new MethodGen(ACC_PUBLIC, Type.VOID, Type.NO_ARGS, new String[] { }, "", "bcelifier.Wildcard", il, _cp); - - InstructionHandle ih_0 = il.append(_factory.createLoad(Type.OBJECT, 0)); - il.append(_factory.createInvoke("java.lang.Object", "", Type.VOID, Type.NO_ARGS, Constants.INVOKESPECIAL)); - InstructionHandle ih_4 = il.append(_factory.createReturn(Type.VOID)); - method.setMaxStack(); - method.setMaxLocals(); - _cg.addMethod(method.getMethod()); - il.dispose(); - } - - public static void main(String[] args) throws Exception { - bcelifier.WildcardCreator creator = new bcelifier.WildcardCreator(); - creator.create(new FileOutputStream("bcelifier.Wildcard.class")); - } -} diff --git a/lib/commons-bcel6-6.0-SNAPSHOT.jar b/lib/commons-bcel6-6.0-SNAPSHOT.jar index c074d7f408546fc59d7c6ef07a263fecd2f80df0..fb9a8ed3c89ca3074d69d86445920d4a3fed1973 100644 GIT binary patch delta 35434 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�=YYqK+tFl`;%(vG8&QKQ5BdGU$Za>c&AhTd%;+Xmt!{vZ>8Tge)Fw19n8d&{!>&LVvcdKv&+X-`F{g!Z=1ARcgDBQWq2p0XFtN!5sHT zscY=_f_T|UMVx}ST{6HjMuT|XX<^Re_!ERKCt$un5OComli)@NoNm(VHYM& z@7iOJ#9-P;f8M+^KCCqy6yjMnb{88dCsPZP58}kDG2ZO6#$kZTxD+Tw;Z2>FycLq? zi!qv?;{`bV4Hl$+_ede<@z_2@6innZG za==|CLgAlD0vbs@CgUyhu8D|Jkvs}R@*7M*`rC+XpszdTPGBi`?#8}v^eLod;7l!~ zESv->c9U#^<&SBl?cMV3-Vr~+e}J$4QgjZA-Sm-a|4GP(VjAKnL0-Z3QhEFp*Vh8- zaENu|MV!5yT*=@(87RA-OJ(s_agzl!>ToI4M0gfw#py?=c_8o|FO=dnil3rfsC8J` z%?}n|axHsdVvToLC-x8Gb3GrbA}&>QcIuZd=9fs}1; z;^#GjNY0y#HQ6Hzr60ghzq=i#N&8btX_R8w(VkY&9{t(6*UM`CfsFz>SbV zVFdD>po?7R`v*=MyB{N-i9Dkp@g|C#r6tO-M$K&S&0}PXMM!RXk00#LLh+Q)>BET5 z&w@UiK>}5UJZGx}96lS+yi8^oG+V1FN3>o*!zMEH+H7@u_f|lg&J)n8)MSpj$Py>ggoU5?55!z+(XtG`NbgNS*F1)#qK7(wat@O?@)^3z9o#DL?f z`XgQu2GGHI$V?#O_kby9$Z3HVqON)1cKi{@$oVjPfkfheS2SO%YP>4{Qit;AYY}D} P$Z>(z)@s`Cu)^?vYiR=K diff --git a/src/de/dhbwstuttgart/bytecode/MethodGenerator.java b/src/de/dhbwstuttgart/bytecode/MethodGenerator.java index effb63e2..04bab9a8 100644 --- a/src/de/dhbwstuttgart/bytecode/MethodGenerator.java +++ b/src/de/dhbwstuttgart/bytecode/MethodGenerator.java @@ -87,6 +87,7 @@ public class MethodGenerator extends MethodGen{ method.addAttribute(factory.createSignatureAttribute(paramTypesSig+retTypeSig)); + System.out.println(this.getInstructionList().size()); StackMap stackMap = new StackMapTableGen(this, cp).getStackMap(); if(stackMap != null)method.addCodeAttribute(stackMap); diff --git a/src/de/dhbwstuttgart/typeinference/EinzelElement.java b/src/de/dhbwstuttgart/typeinference/EinzelElement.java index 32cfba03..60ae48fb 100644 --- a/src/de/dhbwstuttgart/typeinference/EinzelElement.java +++ b/src/de/dhbwstuttgart/typeinference/EinzelElement.java @@ -23,8 +23,8 @@ public class EinzelElement implements KomplexeMenge{ Menge i = new Menge(); i.add(item); ret.add(i); - //return ret; - throw new NotImplementedException(); + return ret; + //throw new NotImplementedException(); } @Override diff --git a/test/bytecode/WhileTest.jav b/test/bytecode/WhileTest.jav index fa39c905..903020d5 100644 --- a/test/bytecode/WhileTest.jav +++ b/test/bytecode/WhileTest.jav @@ -1,4 +1,5 @@ class WhileTest{ + void method(){ Integer i; i = 1; diff --git a/test/bytecode/WhileTest.java b/test/bytecode/WhileTest.java index dde969ed..025f4d30 100644 --- a/test/bytecode/WhileTest.java +++ b/test/bytecode/WhileTest.java @@ -21,7 +21,6 @@ public class WhileTest extends SourceFileBytecodeTest{ Class cls = classLoader.loadClass(testName); - Object obj = cls.newInstance(); assertTrue(true); } } \ No newline at end of file