private Object sawInvokeSpecial(Object userObject) { Object returnValue = userObject; String methodName = getNameConstantOperand(); if (Values.CONSTRUCTOR.equals(methodName)) { String clsName = getDottedClassConstantOperand(); if (doesObjectNeedToBeWatched(clsName)) { returnValue = Boolean.TRUE; } } processMethodParms(); return returnValue; }
private Object sawInvokeSpecial(Object userObject) { Object returnValue = userObject; String methodName = getNameConstantOperand(); if (Values.CONSTRUCTOR.equals(methodName)) { String clsName = getDottedClassConstantOperand(); if (doesObjectNeedToBeWatched(clsName)) { returnValue = Boolean.TRUE; } } processMethodParms(); return returnValue; }
private Object sawInvokeStatic(Object userObject) { if (doesStaticFactoryReturnNeedToBeWatched(getClassConstantOperand(), getNameConstantOperand(), getSigConstantOperand())) { return Boolean.TRUE; } return userObject; }
private Object sawInvokeStatic(Object userObject) { if (doesStaticFactoryReturnNeedToBeWatched(getClassConstantOperand(), getNameConstantOperand(), getSigConstantOperand())) { return Boolean.TRUE; } return userObject; }
private void sawInvokeInterfaceVirtual() { String sig = getSigConstantOperand(); int numParms = SignatureUtils.getNumParameters(sig); if (stack.getStackDepth() > numParms) { OpcodeStack.Item item = stack.getStackItem(numParms); Object uo = item.getUserValue(); if (uo != null) { String name = getNameConstantOperand(); if (isMethodThatShouldBeCalled(name)) { clearUserValue(item); } else if (!"clone".equals(name)) { if ((!Values.SIG_VOID.equals(SignatureUtils.getReturnSignature(sig))) && !nextOpIsPop()) { clearUserValue(item); } } } } processMethodParms(); }
private void sawInvokeInterfaceVirtual() { String sig = getSigConstantOperand(); int numParms = SignatureUtils.getNumParameters(sig); if (stack.getStackDepth() > numParms) { OpcodeStack.Item item = stack.getStackItem(numParms); Object uo = item.getUserValue(); if (uo != null) { String name = getNameConstantOperand(); if (isMethodThatShouldBeCalled(name)) { clearUserValue(item); } else if (!"clone".equals(name)) { if ((!Values.SIG_VOID.equals(SignatureUtils.getReturnSignature(sig))) && !nextOpIsPop()) { clearUserValue(item); } } } } processMethodParms(); }