X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Futil%2FBytecodePruner.java;h=f9a3b644721c252fe45a3e76f7f822bc3df08e0a;hb=c8f04834582049dce7f80507a1b2b6c6210d5c3f;hp=eb162ff40f39c7deb2ad0ee65539e91362c262c3;hpb=0f015aed3b9062a628fb55c673755dfba82e5c61;p=org.ibex.core.git diff --git a/src/org/ibex/util/BytecodePruner.java b/src/org/ibex/util/BytecodePruner.java index eb162ff..f9a3b64 100644 --- a/src/org/ibex/util/BytecodePruner.java +++ b/src/org/ibex/util/BytecodePruner.java @@ -22,7 +22,8 @@ public class BytecodePruner { public void loadAllMethods(String classname) throws Exception { visitJavaClass(repo.loadClass(classname)); Method[] meths = getMethods(repo.loadClass(classname)); - for(int i=0; i"); + } + if (instr instanceof org.apache.bcel.generic.FieldOrMethod) + load(((org.apache.bcel.generic.FieldOrMethod)instr).getClassType(cpg)); + if (instr instanceof org.apache.bcel.generic.FieldInstruction) { + load(((org.apache.bcel.generic.FieldInstruction)instr).getFieldType(cpg)); + load(((org.apache.bcel.generic.FieldInstruction)instr).getType(cpg)); + String fieldName = ((org.apache.bcel.generic.FieldInstruction)instr).getFieldName(cpg); + JavaClass jc2 = repo.loadClass(((ObjectType)((org.apache.bcel.generic.FieldInstruction)instr). + getLoadClassType(cpg)).getClassName()); + Field[] fields = jc2.getFields(); + for(int j=0; j")) visitJavaMethod(clazz, methods[i]); - // only if ctor reachable (?) if (methods[i].getName().equals("equals")) visitJavaMethod(clazz, methods[i]); if (methods[i].getName().equals("hashCode")) visitJavaMethod(clazz, methods[i]);