@Override public int byteLength() { return 10 + code.byteLength() + catches.byteLength() + attributes.byteLength(); }
/** * Simulates the effect of the instruction at the given offset, by * making appropriate calls on the given frame. * * @param offset {@code >= 0;} offset of the instruction to simulate * @param frame {@code non-null;} frame to operate on * @return the length of the instruction, in bytes */ public int simulate(int offset, Frame frame) { visitor.setFrame(frame); return code.parseInstruction(offset, visitor); }
return parseTableswitch(offset, visitor); return parseLookupswitch(offset, visitor); return parseNewarray(offset, visitor); return parseWide(offset, visitor);
length -= codeLength; BytecodeArray code = new BytecodeArray(bytes.slice(codeOffset, codeOffset + codeLength), pool); if (observer != null) { code.forEach(new CodeObserver(code.getBytes(), observer));
ByteArray bytes = code.getBytes(); ByteBlockList list = BasicBlocker.identifyBlocks(meth); int sz = list.size(); len = code.parseInstruction(j, codeObserver); codeObserver.setPreviousOffset(j);
bytes.processWorkSet(workSet, this); } catch (IllegalArgumentException ex) {
TranslationAdvice advice = DexTranslationAdvice.THE_ONE; BytecodeArray code = meth.getCode(); ByteArray bytes = code.getBytes(); RopMethod rmeth = Ropper.convert(meth, advice); StringBuffer sb = new StringBuffer(2000);
return parseTableswitch(offset, visitor); return parseLookupswitch(offset, visitor); return parseNewarray(offset, visitor); return parseWide(offset, visitor);
length -= codeLength; BytecodeArray code = new BytecodeArray(bytes.slice(codeOffset, codeOffset + codeLength), pool); if (observer != null) { code.forEach(new CodeObserver(code.getBytes(), observer));
ByteArray bytes = code.getBytes(); ByteBlockList list = BasicBlocker.identifyBlocks(meth); int sz = list.size(); len = code.parseInstruction(j, codeObserver); codeObserver.setPreviousOffset(j);
bytes.processWorkSet(workSet, this); } catch (IllegalArgumentException ex) {
TranslationAdvice advice = DexTranslationAdvice.THE_ONE; BytecodeArray code = meth.getCode(); ByteArray bytes = code.getBytes(); RopMethod rmeth = Ropper.convert(meth, advice, classFile.getMethods()); StringBuffer sb = new StringBuffer(2000);
return parseTableswitch(offset, visitor); return parseLookupswitch(offset, visitor); return parseNewarray(offset, visitor); return parseWide(offset, visitor);
length -= codeLength; BytecodeArray code = new BytecodeArray(bytes.slice(codeOffset, codeOffset + codeLength), pool); if (observer != null) { code.forEach(new CodeObserver(code.getBytes(), observer));
/** * Simulates the effect of the instruction at the given offset, by * making appropriate calls on the given frame. * * @param offset {@code >= 0;} offset of the instruction to simulate * @param frame {@code non-null;} frame to operate on * @return the length of the instruction, in bytes */ public int simulate(int offset, Frame frame) { visitor.setFrame(frame); return code.parseInstruction(offset, visitor); }
ByteArray bytes = code.getBytes(); ByteBlockList list = BasicBlocker.identifyBlocks(meth); int sz = list.size(); len = code.parseInstruction(j, codeObserver); codeObserver.setPreviousOffset(j);
@Override public int byteLength() { return 10 + code.byteLength() + catches.byteLength() + attributes.byteLength(); }
bytes.processWorkSet(workSet, this); } catch (IllegalArgumentException ex) {
TranslationAdvice advice = DexTranslationAdvice.THE_ONE; BytecodeArray code = meth.getCode(); ByteArray bytes = code.getBytes(); RopMethod rmeth = Ropper.convert(meth, advice, classFile.getMethods()); StringBuffer sb = new StringBuffer(2000);
return parseTableswitch(offset, visitor); return parseLookupswitch(offset, visitor); return parseNewarray(offset, visitor); return parseWide(offset, visitor);