public class ResourceLeakTransfer extends CalledMethodsTransfer
atypeFactoryanalysis, sequentialSemantics| Constructor and Description |
|---|
ResourceLeakTransfer(CFAnalysis analysis)
Create a new resource leak transfer function.
|
| Modifier and Type | Method and Description |
|---|---|
void |
updateStoreWithTempVar(TransferResult<CFValue,CFStore> result,
Node node)
This method either creates or looks up the temp var t for node, and then updates the store to
give t the same type as node.
|
TransferResult<CFValue,CFStore> |
visitMethodInvocation(MethodInvocationNode node,
TransferInput<CFValue,CFStore> input) |
TransferResult<CFValue,CFStore> |
visitObjectCreation(ObjectCreationNode node,
TransferInput<CFValue,CFStore> input) |
TransferResult<CFValue,CFStore> |
visitTernaryExpression(TernaryExpressionNode node,
TransferInput<CFValue,CFStore> input) |
accumulateaddInformationFromPreconditions, createTransferResult, finishValue, finishValue, getNarrowedValue, getValueFromFactory, getValueWithSameAnnotations, getWidenedValue, initialStore, insertIntoStores, isNotFullyInitializedReceiver, moreSpecificValue, processCommonAssignment, processConditionalPostconditions, processPostconditions, recreateTransferResult, setFixedInitialStore, splitAssignments, strengthenAnnotationOfEqualTo, usesSequentialSemantics, visitArrayAccess, visitAssignment, visitCase, visitClassName, visitConditionalNot, visitEqualTo, visitFieldAccess, visitInstanceOf, visitLambdaResultExpression, visitLocalVariable, visitNarrowingConversion, visitNode, visitNotEqual, visitReturn, visitStringConcatenateAssignment, visitStringConversion, visitThis, visitVariableDeclaration, visitWideningConversionvisitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCharacterLiteral, visitClassDeclaration, visitConditionalAnd, visitConditionalOr, visitDoubleLiteral, visitExplicitThis, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThis, visitIntegerDivision, visitIntegerLiteral, visitIntegerRemainder, visitLeftShift, visitLessThan, visitLessThanOrEqual, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringLiteral, visitSuper, visitSynchronized, visitThrow, visitTypeCast, visitUnsignedRightShift, visitValueLiteralclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitvisitArrayCreation, visitArrayType, visitAssertionError, visitBitwiseAnd, visitBitwiseComplement, visitBitwiseOr, visitBitwiseXor, visitBooleanLiteral, visitCharacterLiteral, visitClassDeclaration, visitConditionalAnd, visitConditionalOr, visitDoubleLiteral, visitExplicitThis, visitFloatingDivision, visitFloatingRemainder, visitFloatLiteral, visitGreaterThan, visitGreaterThanOrEqual, visitImplicitThis, visitIntegerDivision, visitIntegerLiteral, visitIntegerRemainder, visitLeftShift, visitLessThan, visitLessThanOrEqual, visitLongLiteral, visitMarker, visitMemberReference, visitMethodAccess, visitNullChk, visitNullLiteral, visitNumericalAddition, visitNumericalMinus, visitNumericalMultiplication, visitNumericalPlus, visitNumericalSubtraction, visitPackageName, visitParameterizedType, visitPrimitiveType, visitShortLiteral, visitSignedRightShift, visitStringConcatenate, visitStringLiteral, visitSuper, visitSynchronized, visitThrow, visitTypeCast, visitUnsignedRightShiftpublic ResourceLeakTransfer(CFAnalysis analysis)
analysis - the analysis. Its type factory must be a ResourceLeakAnnotatedTypeFactory.public TransferResult<CFValue,CFStore> visitTernaryExpression(TernaryExpressionNode node, TransferInput<CFValue,CFStore> input)
visitTernaryExpression in interface NodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>visitTernaryExpression in class CFAbstractTransfer<CFValue,CFStore,CFTransfer>public TransferResult<CFValue,CFStore> visitMethodInvocation(MethodInvocationNode node, TransferInput<CFValue,CFStore> input)
visitMethodInvocation in interface NodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>visitMethodInvocation in class CalledMethodsTransferpublic TransferResult<CFValue,CFStore> visitObjectCreation(ObjectCreationNode node, TransferInput<CFValue,CFStore> input)
visitObjectCreation in interface NodeVisitor<TransferResult<CFValue,CFStore>,TransferInput<CFValue,CFStore>>visitObjectCreation in class CFAbstractTransfer<CFValue,CFStore,CFTransfer>public void updateStoreWithTempVar(TransferResult<CFValue,CFStore> result, Node node)
MustCallConsistencyAnalyzer for more details.node - the node to be assigned to a temporary variableresult - the transfer result containing the store to be modified