List of usage examples for org.objectweb.asm.commons AnalyzerAdapter AnalyzerAdapter
public AnalyzerAdapter(final String owner, final int access, final String name, final String descriptor, final MethodVisitor methodVisitor)
From source file:asmlib.UninitializedCallChecker.java
License:Open Source License
public UninitializedCallChecker(int access, String name, String desc, String signature, String[] exceptions, ClassVisitor cv, String className, PrintWriter pw) { super(Opcodes.ASM4, new AnalyzerAdapter(className, access, name, desc, cv.visitMethod(access, name, desc, signature, exceptions))); _analyzerAdapter = (AnalyzerAdapter) mv; _pw = pw;/*from www . j a va2s .c o m*/ _name = name; _desc = desc; }
From source file:ch.eiafr.cojac.FloatReplaceClassVisitor.java
License:Apache License
private MethodVisitor instrumentMethod(MethodVisitor parentMv, int access, String desc, String oldDesc, String name) {//from w w w .jav a 2 s . c o m MethodVisitor mv; // Create the MethodVisitor delegation chain: // MyLocalAdder adds two local variables // -> FloatReplacerMethodVisitor main bytecode transformation (with helper class FloatProxyMethod) // -> FloatVariableSorter remaps parameters index (due to the replacement of double (2 slots) as objects (1 slot)) // -> AnalyzerAdapter keeps track of effective stack, so that we know the type of the top // -> parentMv typically the final Writer // the last one (parentMv) is typically a MethodWriter // With maybe some intermediate TraceMethodVisitor to help debugging... if (wantsToDump(crtClassName, name)) { // name.contains("dumpMethod")) { // "dumpMethod" parentMv = new TraceMethodVisitor(parentMv, newPrinter("FINAL " + name + desc)); } AnalyzerAdapter aa = new AnalyzerAdapter(crtClassName, access, name, desc, parentMv); FloatVariablesSorter lvs = new FloatVariablesSorter(access, oldDesc, aa); MethodVisitor aux = lvs; if (wantsToDump(crtClassName, name)) { aux = new TraceMethodVisitor(lvs, newPrinter("JUST BEFORE LVS " + name + desc)); } ReplaceFloatsMethods rfm = new ReplaceFloatsMethods(fpm, crtClassName, references); FloatReplacerMethodVisitor frmv = new FloatReplacerMethodVisitor(aa, aux, rfm, stats, factory, references); MyLocalAdder mla = new MyLocalAdder(access, oldDesc, frmv); fpm.setUsefulPartners(aa, mla); mv = mla; if (wantsToDump(crtClassName, name)) mv = new TraceMethodVisitor(mv, newPrinter("BEFORE " + name + desc)); return mv; }
From source file:com.github.wolf480pl.mias4j.core.rewrite.SandboxAdapter.java
License:Open Source License
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { MethodAdapter ma = new MethodAdapter(cv.visitMethod(access, name, desc, signature, exceptions), policy, clazz, name.equals(INIT));/* ww w . j av a2 s. co m*/ AnalyzerAdapter analyzer = new AnalyzerAdapter(clazz.getInternalName(), access, name, desc, ma); ma.setAnalyzer(analyzer); return analyzer; }
From source file:de.unisb.cs.st.javalanche.mutation.bytecodeMutations.MutationsClassAdapter.java
License:Open Source License
public MethodVisitor visitMethod(int access, String name, String desc, String signature, final String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); mv = new CheckMethodAdapter(mv); mv = new RicMethodAdapter(mv, className, name, ricPossibilities, mutationManager, desc); mv = new NegateJumpsMethodAdapter(mv, className, name, negatePossibilities, mutationManager, desc); mv = new ArithmeticReplaceMethodAdapter(mv, className, name, arithmeticPossibilities, mutationManager, desc);/*from w ww. j a va 2s . c o m*/ mv = new RemoveMethodCallsMethodAdapter(mv, className, name, removeCallsPossibilities, mutationManager, desc); JavalancheConfiguration config = ConfigurationLocator.getJavalancheConfiguration(); if (config.enableMutationType(MutationType.REPLACE_VARIABLE)) { ReplaceVariablesMethodAdapter rvAdapter = new ReplaceVariablesMethodAdapter(mv, className, name, replaceVariablePossibilities, desc, mutationManager, projectVariables.getStaticVariables(className), projectVariables.getClassVariables(className)); mv = rvAdapter; AnalyzerAdapter analyzerAdapter = new AnalyzerAdapter(className, access, name, desc, mv); rvAdapter.setAnlyzeAdapter(analyzerAdapter); mv = analyzerAdapter; } if (config.enableMutationType(MutationType.ABSOLUTE_VALUE)) { mv = new AbsoluteValueMethodAdapter(mv, className, name, absolutValuePossibilities, mutationManager, desc); } if (config.enableMutationType(MutationType.UNARY_OPERATOR)) { mv = new UnaryOperatorMethodAdapter(mv, className, name, unaryOperatorPossibilities, mutationManager, desc); } if (config.enableMutationType(MutationType.MONITOR_REMOVE)) { mv = new MonitorRemoveMethodAdapter(mv, className, name, monitorPossibilities, mutationManager, desc); } if (config.enableMutationType(MutationType.REPLACE_THREAD_CALL)) { mv = new ReplaceThreadCallsMethodAdapter(mv, className, name, replaceThreadCallPossibilities, mutationManager, desc); } return mv; }
From source file:de.unisb.cs.st.javalanche.mutation.bytecodeMutations.MutationsCollectorClassAdapter.java
License:Open Source License
public MethodVisitor visitMethod(int access, String name, String desc, String signature, final String[] exceptions) { MethodVisitor mv = super.visitMethod(access, name, desc, signature, exceptions); if ((access & Opcodes.ACC_SYNTHETIC) > 0 || (access & Opcodes.ACC_BRIDGE) > 0 || name.equals("<clinit>")) { return mv; }//from w ww . j a v a 2s. c o m if (debug) { mv = new CheckMethodAdapter(mv); } JavalancheConfiguration configuration = ConfigurationLocator.getJavalancheConfiguration(); if (configuration.enableMutationType(REPLACE_CONSTANT)) { mv = new PossibilitiesRicMethodAdapter(mv, className, name, mpc, ricPossibilities, desc); } if (configuration.enableMutationType(NEGATE_JUMP)) { mv = new NegateJumpsPossibilitiesMethodAdapter(mv, className, name, mpc, negatePossibilities, desc); } if (configuration.enableMutationType(ARITHMETIC_REPLACE)) { mv = new PossibilitiesArithmeticReplaceMethodAdapter(mv, className, name, mpc, arithmeticPossibilities, desc); } if (configuration.enableMutationType(REMOVE_CALL)) { mv = new RemoveCallsPossibilitiesMethodAdapter(new MyAdviceAdapter(mv, access, name, desc), className, name, mpc, removeCallsPossibilities, desc); } if (configuration.enableMutationType(REPLACE_VARIABLE)) { ReplaceVariablesPossibilitiesMethodAdapter rvAdapter = new ReplaceVariablesPossibilitiesMethodAdapter( mv, className, name, mpc, replaceVariablesPossibilities, desc, projectVariables.getStaticVariables(className), projectVariables.getClassVariables(className)); mv = rvAdapter; AnalyzerAdapter analyzerAdapter = new AnalyzerAdapter(className, access, name, desc, mv); rvAdapter.setAnlyzeAdapter(analyzerAdapter); mv = analyzerAdapter; } if (configuration.enableMutationType(ABSOLUTE_VALUE)) { mv = new AbsoluteValuePossibilitiesAdapter(mv, className, name, absoluteValuePossibilities, desc, mpc); } if (configuration.enableMutationType(UNARY_OPERATOR)) { mv = new UnaryOperatorPossibilitiesAdapter(mv, className, name, unaryOperatorPossibilities, desc, mpc); } if (configuration.enableMutationType(MONITOR_REMOVE)) { mv = new MonitorRemovePossibilitiesMethodAdapter(mv, className, name, mpc, monitorPossibilities, desc); } if (configuration.enableMutationType(REPLACE_THREAD_CALL)) { mv = new ReplaceThreadCallsPossibilitiesMethodAdapter(new ReplaceAdviceAdapter(mv, access, name, desc), className, name, mpc, replaceThreadCallsPossibilities, desc); } return mv; }
From source file:de.unisb.cs.st.javalanche.mutation.bytecodeMutations.replaceVariables.ReplaceVariablesClassAdapter.java
License:Open Source License
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { ReplaceVariablesMethodAdapter actualAdapter = new ReplaceVariablesMethodAdapter( super.visitMethod(access, name, desc, signature, exceptions), className, name, possibilities, desc, mm, projectVariables.getStaticVariables(className), projectVariables.getClassVariables(className)); AnalyzerAdapter analyzerAdapter = new AnalyzerAdapter(className, access, name, desc, actualAdapter); actualAdapter.setAnlyzeAdapter(analyzerAdapter); return analyzerAdapter; }
From source file:de.unisb.cs.st.javalanche.mutation.bytecodeMutations.replaceVariables.ReplaceVariablesPossibilitiesClassAdapter.java
License:Open Source License
@Override public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) { ReplaceVariablesPossibilitiesMethodAdapter actualAdapter = new ReplaceVariablesPossibilitiesMethodAdapter( super.visitMethod(access, name, desc, signature, exceptions), className, name, mutationPossibilityCollector, possibilities, desc, projectVariables.getStaticVariables(className), projectVariables.getClassVariables(className)); AnalyzerAdapter analyzerAdapter = new AnalyzerAdapter(className, access, name, desc, actualAdapter); actualAdapter.setAnlyzeAdapter(analyzerAdapter); return analyzerAdapter; }
From source file:edu.ubc.mirrors.holograms.HologramMethodGenerator.java
License:Open Source License
public HologramMethodGenerator(String owner, int access, String name, String desc, MethodVisitor superVisitor, boolean isToString, boolean isGetStackTrace) { super(Opcodes.ASM4, null); this.analyzer = new AnalyzerAdapter(owner, access, name, desc, superVisitor); this.mv = analyzer; this.name = name; this.owner = Type.getObjectType(owner); this.access = access; this.methodType = Type.getMethodType(desc); this.isToString = isToString; this.isGetStackTrace = isGetStackTrace; activeMethod = name + desc;// w w w.j av a2 s .c o m }
From source file:jaspex.speculation.newspec.FakeLocalsStack.java
License:Open Source License
public DelayGetFutureMethodVisitor(int access, String name, String desc, String signature, String[] exceptions, ClassVisitor cv, InfoClass currentClass) { super(Opcodes.ASM4, new AnalyzerAdapter(currentClass.type().asmName(), access, name, desc, cv.visitMethod(access, name, desc, signature, exceptions))); // FIXME: Especulao em constructores disabled por agora (first draft) if (name.endsWith( "$speculative") /*|| (name.equals("<init>") && CommonTypes.SPECULATIVECTORMARKER.equals(m.argumentTypes().peekLast()))*/) { _active = true;//w w w . ja va2 s. co m } else { _active = false; } _analyzerAdapter = (AnalyzerAdapter) mv; }
From source file:jaspex.transactifier.ChangeArrayAccessMethodVisitor.java
License:Open Source License
public ChangeArrayAccessMethodVisitor(int access, String name, String desc, String signature, String[] exceptions, ClassVisitor cv, InfoClass currentClass, Boolean JDKClass) { super(Opcodes.ASM4, new AnalyzerAdapter(currentClass.type().asmName(), access, name, desc, cv.visitMethod(access, name, desc, signature, exceptions))); _analyzerAdapter = (AnalyzerAdapter) mv; _active = !(name.equals("<clinit>") && JDKClass); }