1 19 20 package soot.dava.toolkits.base.misc; 21 22 import soot.*; 23 import soot.util.*; 24 import java.util.*; 25 import soot.dava.*; 26 import soot.jimple.*; 27 import soot.grimp.internal.*; 28 import soot.dava.internal.asg.*; 29 import soot.dava.internal.javaRep.*; 30 31 public class ThrowNullConverter 32 { 33 public ThrowNullConverter( Singletons.Global g ) {} 34 public static ThrowNullConverter v() { return G.v().soot_dava_toolkits_base_misc_ThrowNullConverter(); } 35 36 private RefType npeRef = RefType.v( Scene.v().loadClassAndSupport( "java.lang.NullPointerException")); 37 38 public void convert( DavaBody body) 39 { 40 Iterator it = body.getUnits().iterator(); 41 while (it.hasNext()) { 42 Unit u = (Unit) it.next(); 43 44 if (u instanceof ThrowStmt) { 45 ValueBox opBox = ((ThrowStmt) u).getOpBox(); 46 Value op = opBox.getValue(); 47 48 if (op.getType() instanceof NullType) 49 opBox.setValue( new DNewInvokeExpr( npeRef, null, new ArrayList())); 50 } 51 } 52 } 53 } 54 | Popular Tags |