1 19 20 package soot.jimple.toolkits.pointer; 21 import soot.*; 22 import java.util.*; 23 import soot.tagkit.*; 24 25 public class DependenceTag implements Tag 26 { 27 private final static String NAME = "DependenceTag"; 28 protected short read = -1; 29 protected short write = -1; 30 protected boolean callsNative = false; 31 32 public boolean setCallsNative() { 33 boolean ret = !callsNative; 34 callsNative = true; 35 return ret; 36 } 37 38 protected void setRead( short s ) { 39 read = s; 40 } 41 42 protected void setWrite( short s ) { 43 write = s; 44 } 45 46 public String getName() 47 { 48 return NAME; 49 } 50 51 public byte[] getValue() { 52 byte[] ret = new byte[5]; 53 ret[0] = (byte) ( (read >> 8) & 0xff ); 54 ret[1] = (byte) ( read & 0xff ); 55 ret[2] = (byte) ( (write >> 8) & 0xff ); 56 ret[3] = (byte) ( write & 0xff ); 57 ret[4] = (byte) ( callsNative ? 1 : 0 ); 58 return ret; 59 } 60 61 public String toString() 62 { 63 StringBuffer buf = new StringBuffer (); 64 if( callsNative ) buf.append( "SECallsNative\n" ); 65 if( read >= 0 ) buf.append( "SEReads : "+read+"\n" ); 66 if( write >= 0 ) buf.append( "SEWrites: "+write+"\n" ); 67 return buf.toString(); 68 } 69 } 70 | Popular Tags |