List of usage examples for org.objectweb.asm.commons CodeSizeEvaluator getMaxSize
public int getMaxSize()
From source file:br.usp.each.saeg.badua.core.internal.instr.MethodInstrumenter.java
License:Open Source License
@Override public void visitEnd() { if (next == null) return;/*from w w w . j a v a 2 s.c o m*/ final MethodNode original = new MethodNode(api, access, name, desc, signature, exceptions); final CodeSizeEvaluator sizeEval = new CodeSizeEvaluator(null); // 1. create a copy of the unmodified MethodNode accept(original); // 2. transform transform(); // 3. evaluate new size accept(sizeEval); // size is fine (lower than 65535 bytes) if (sizeEval.getMaxSize() < 0xFFFF) accept(next); // size overflow else { sizeOverflow(); original.accept(next); } }
From source file:de.tuberlin.uebb.jbop.optimizer.methodsplitter.MethodSplitter.java
License:Open Source License
private int getLength(final MethodNode methodNode) { final CodeSizeEvaluator codeSizeEvaluator = new CodeSizeEvaluator(null); methodNode.accept(codeSizeEvaluator); return codeSizeEvaluator.getMaxSize(); }