1 19 20 package soot.jimple.toolkits.annotation.tags; 21 22 23 import soot.*; 24 import java.util.*; 25 import soot.baf.*; 26 27 import soot.tagkit.*; 28 29 30 31 public class ArrayNullTagAggregator extends TagAggregator 32 { 33 public ArrayNullTagAggregator( Singletons.Global g ) {} 34 public static ArrayNullTagAggregator v() { return G.v().soot_jimple_toolkits_annotation_tags_ArrayNullTagAggregator(); } 35 36 public boolean wantTag( Tag t ) { 37 return (t instanceof OneByteCodeTag); 38 } 39 public void considerTag(Tag t, Unit u) 40 { 41 Inst i = (Inst) u; 42 if(! ( i.containsInvokeExpr() 43 || i.containsFieldRef() 44 || i.containsArrayRef() ) ) return; 45 46 OneByteCodeTag obct = (OneByteCodeTag) t; 47 48 if( units.size() == 0 || units.getLast() != u ) { 49 units.add( u ); 50 tags.add( new ArrayNullCheckTag() ); 51 } 52 ArrayNullCheckTag anct = (ArrayNullCheckTag) tags.getLast(); 53 anct.accumulate(obct.getValue()[0]); 54 } 55 56 public String aggregatedName() 57 { 58 return "ArrayNullCheckAttribute"; 59 } 60 } 61 62 63 64 65 66 67 68 | Popular Tags |