/** * Returns whether the first whether the first instructions of the * given code attribute match with the given instruction matcher. */ private boolean isDotClassMethodCode(Clazz clazz, Method method, CodeAttribute codeAttribute, InstructionSequenceMatcher codeMatcher, int codeLength) { // Check the minimum code length. if (codeAttribute.u4codeLength < codeLength) { return false; } // Check the actual instructions. codeMatcher.reset(); codeAttribute.instructionsAccept(clazz, method, 0, codeLength, codeMatcher); return codeMatcher.isMatching(); }
/** * Returns whether the first whether the first instructions of the * given code attribute match with the given instruction matcher. */ private boolean isDotClassMethodCode(Clazz clazz, Method method, CodeAttribute codeAttribute, InstructionSequenceMatcher codeMatcher, int codeLength) { // Check the minimum code length. if (codeAttribute.u4codeLength < codeLength) { return false; } // Check the actual instructions. codeMatcher.reset(); codeAttribute.instructionsAccept(clazz, method, 0, codeLength, codeMatcher); return codeMatcher.isMatching(); }
/** * Returns whether the first whether the first instructions of the * given code attribute match with the given instruction matcher. */ private boolean isDotClassMethodCode(Clazz clazz, Method method, CodeAttribute codeAttribute, InstructionSequenceMatcher codeMatcher, int codeLength) { // Check the minimum code length. if (codeAttribute.u4codeLength < codeLength) { return false; } // Check the actual instructions. codeMatcher.reset(); codeAttribute.instructionsAccept(clazz, method, 0, codeLength, codeMatcher); return codeMatcher.isMatching(); }
/** * Returns whether the first whether the first instructions of the * given code attribute match with the given instruction matcher. */ private boolean isDotClassMethodCode(Clazz clazz, Method method, CodeAttribute codeAttribute, InstructionSequenceMatcher codeMatcher, int codeLength) { // Check the minimum code length. if (codeAttribute.u4codeLength < codeLength) { return false; } // Check the actual instructions. codeMatcher.reset(); codeAttribute.instructionsAccept(clazz, method, 0, codeLength, codeMatcher); return codeMatcher.isMatching(); }
public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute) { // Is the initializer initializing the field? if (codeAttribute.u4codeLength == 10) { INITIALIZER_MATCHER.reset(); codeAttribute.instructionsAccept(clazz, method, INITIALIZER_MATCHER); if (INITIALIZER_MATCHER.isMatching()) { String initializerClassName = clazz.getName(); String fieldClassName = clazz.getClassName(INITIALIZER_MATCHER.matchedConstantIndex(InstructionSequenceMatcher.A)); if (fieldClassName.equals(initializerClassName)) { wrapCounter++; } else { wrapCounter = Integer.MIN_VALUE; } } else { wrapCounter = Integer.MIN_VALUE; } } else { wrapCounter = Integer.MIN_VALUE; } }
public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute) { // Is the initializer initializing the field? if (codeAttribute.u4codeLength == 10) { INITIALIZER_MATCHER.reset(); codeAttribute.instructionsAccept(clazz, method, INITIALIZER_MATCHER); if (INITIALIZER_MATCHER.isMatching()) { String initializerClassName = clazz.getName(); String fieldClassName = clazz.getClassName(INITIALIZER_MATCHER.matchedConstantIndex(InstructionSequenceMatcher.A)); if (fieldClassName.equals(initializerClassName)) { wrapCounter++; } else { wrapCounter = Integer.MIN_VALUE; } } else { wrapCounter = Integer.MIN_VALUE; } } else { wrapCounter = Integer.MIN_VALUE; } }
public void visitCodeAttribute(Clazz clazz, Method method, CodeAttribute codeAttribute) { // Is the initializer initializing the field? if (codeAttribute.u4codeLength == 10) { INITIALIZER_MATCHER.reset(); codeAttribute.instructionsAccept(clazz, method, INITIALIZER_MATCHER); if (INITIALIZER_MATCHER.isMatching()) { String initializerClassName = clazz.getName(); String fieldClassName = clazz.getClassName(INITIALIZER_MATCHER.matchedConstantIndex(InstructionSequenceMatcher.A)); if (fieldClassName.equals(initializerClassName)) { wrapCounter++; } else { wrapCounter = Integer.MIN_VALUE; } } else { wrapCounter = Integer.MIN_VALUE; } } else { wrapCounter = Integer.MIN_VALUE; } }
arrayPreStoreMatcher.reset(); for (int count = 0, offset = startOffset; count < instructionCount && offset < codeAttribute.u4codeLength;
arrayPreStoreMatcher.reset(); for (int count = 0, offset = startOffset; count < instructionCount && offset < codeAttribute.u4codeLength;
arrayPreStoreMatcher.reset(); for (int count = 0, offset = startOffset; count < instructionCount && offset < codeAttribute.u4codeLength;
variableSequenceMatcher.reset();
codeAttributeEditor.isModified(offset)) instructionSequenceMatcher.reset();
variableSequenceMatcher.reset();
classForNameCastMatcher.reset();
codeAttributeEditor.isModified(offset)) instructionSequenceMatcher.reset();
classForNameCastMatcher.reset();
classForNameCastMatcher.reset();
classForNameCastMatcher.reset();