Class TrapTightener
- All Implemented Interfaces:
BodyInterceptor
- Author:
- Zun Wang
description from Soot: A BodyTransformer that shrinks the protected area covered by each Trap in the Body so that it begins at the first of the Body's Units which might throw an exception caught by the Trap and ends just after the last Unit which might throw an exception caught by the Trap. In the case where none of the Units protected by a Trap can throw the exception it catches, the Trap's protected area is left completely empty, which will likely cause the UnreachableCodeEliminator to remove the Trap(handler?) completely (if the traphandler does not cover another range). The TrapTightener is used to reduce the risk of unverifiable code which can result from the use of ExceptionalUnitGraphs from which unrealizable exceptional control flow edges have been removed.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
interceptBody
(Body.BodyBuilder builder, View view) Takes a BodyBuilder and may apply a transformation to it, for example removing unused local variables.
-
Constructor Details
-
TrapTightener
public TrapTightener()
-
-
Method Details
-
interceptBody
Description copied from interface:BodyInterceptor
Takes a BodyBuilder and may apply a transformation to it, for example removing unused local variables.- Specified by:
interceptBody
in interfaceBodyInterceptor
-