public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { if ((programMethod.getAccessFlags() & (ClassConstants.ACC_NATIVE | ClassConstants.ACC_SYNCHRONIZED)) != 0) { markSideEffects(programClass, programMethod); } }
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { if ((programMethod.getAccessFlags() & (ClassConstants.ACC_NATIVE | ClassConstants.ACC_SYNCHRONIZED)) != 0) { markSideEffects(programClass, programMethod); } }
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { if ((programMethod.getAccessFlags() & (ClassConstants.ACC_NATIVE | ClassConstants.ACC_SYNCHRONIZED)) != 0) { markSideEffects(programClass, programMethod); } }
public void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction) { // Check if it may be throwing exceptions. if (sideEffectInstructionChecker.hasSideEffects(clazz, method, codeAttribute, offset, instruction)) { markSideEffects(clazz, method); } }
public void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction) { // Check if it may be throwing exceptions. if (sideEffectInstructionChecker.hasSideEffects(clazz, method, codeAttribute, offset, instruction)) { markSideEffects(clazz, method); } }
public void visitAnyInstruction(Clazz clazz, Method method, CodeAttribute codeAttribute, int offset, Instruction instruction) { // Check if it may be throwing exceptions. if (sideEffectInstructionChecker.hasSideEffects(clazz, method, codeAttribute, offset, instruction)) { markSideEffects(clazz, method); } }
public void visitProgramMethod(ProgramClass programClass, ProgramMethod programMethod) { if (!hasSideEffects(programMethod) && !NoSideEffectMethodMarker.hasNoSideEffects(programMethod)) { // Initialize the return value. hasSideEffects = (programMethod.getAccessFlags() & (ClassConstants.INTERNAL_ACC_NATIVE | ClassConstants.INTERNAL_ACC_SYNCHRONIZED)) != 0; // Look further if the method hasn't been marked yet. if (!hasSideEffects) { // Investigate the actual code. programMethod.attributesAccept(programClass, this); } // Mark the method depending on the return value. if (hasSideEffects) { markSideEffects(programMethod); newSideEffectCount++; } } }