Package soot.toDex
Class TrapSplitter
- java.lang.Object
-
- soot.Transformer
-
- soot.BodyTransformer
-
- soot.toDex.TrapSplitter
-
public class TrapSplitter extends BodyTransformer
Transformer that splits nested traps for Dalvik which does not support hierarchies of traps. If we have a trap (1-3) with handler A and a trap (2) with handler B, we transform them into three new traps: (1) and (3) with A, (2) with A+B.- Author:
- Steven Arzt
-
-
Constructor Summary
Constructors Constructor Description TrapSplitter(Singletons.Global g)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidinternalTransform(Body b, String phaseName, Map<String,String> options)This method is called to perform the transformation itself.static voidremovePotentiallyUselassTraps(Body b, Set<Unit> potentiallyUselessTrapHandlers)Changes the given body so that trap handlers, which are contained in the given set, are removed in case they are not referenced by any trap.static TrapSplitterv()-
Methods inherited from class soot.BodyTransformer
transform, transform, transform
-
-
-
-
Constructor Detail
-
TrapSplitter
public TrapSplitter(Singletons.Global g)
-
-
Method Detail
-
v
public static TrapSplitter v()
-
internalTransform
protected void internalTransform(Body b, String phaseName, Map<String,String> options)
Description copied from class:BodyTransformerThis method is called to perform the transformation itself. It is declared abstract; subclasses must implement this method by making it the entry point to their actual Body transformation.- Specified by:
internalTransformin classBodyTransformer- Parameters:
b- the body on which to apply the transformationphaseName- the phasename for this transform; not typically used by implementations.options- the actual computed options; a combination of default options and Scene specified options.
-
removePotentiallyUselassTraps
public static void removePotentiallyUselassTraps(Body b, Set<Unit> potentiallyUselessTrapHandlers)
Changes the given body so that trap handlers, which are contained in the given set, are removed in case they are not referenced by any trap. The list is changed so that it contains the unreferenced trap handlers.- Parameters:
b- the bodypotentiallyUselessTrapHandlers- potentially useless trap handlers
-
-