soot
Class AbstractJasminClass

java.lang.Object
  extended by soot.AbstractJasminClass
Direct Known Subclasses:
JasminClass, JasminClass

public abstract class AbstractJasminClass
extends Object


Field Summary
protected  Map<Block,Integer> blockToLogicalStackHeight
           
protected  Map<Block,Integer> blockToStackHeight
           
protected  List<String> code
           
protected  int currentStackHeight
           
protected  Map<Object,Integer> groupToColorCount
           
protected  boolean isEmittingMethodCode
           
protected  boolean isNextGotoAJsr
           
protected  int labelCount
           
protected  Map<Local,Integer> localToColor
           
protected  Map<Local,Object> localToGroup
           
protected  Map<Local,Integer> localToSlot
           
protected  int maxStackHeight
           
protected  int returnAddressSlot
           
protected  Map<Unit,Integer> subroutineToReturnAddressSlot
           
protected  Map unitToLabel
           
 
Constructor Summary
AbstractJasminClass(SootClass sootClass)
           
 
Method Summary
static int argCountOf(SootMethodRef m)
           
protected  void assignColorsToLocals(Body body)
           
protected  void emit(String s)
           
protected  void emitMethod(SootMethod method)
           
protected abstract  void emitMethodBody(SootMethod method)
           
static String jasminDescriptorOf(SootMethodRef m)
           
static String jasminDescriptorOf(Type type)
           
protected  void okayEmit(String s)
           
 void print(PrintWriter out)
           
static int sizeOfType(Type t)
           
static String slashify(String s)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

unitToLabel

protected Map unitToLabel

localToSlot

protected Map<Local,Integer> localToSlot

subroutineToReturnAddressSlot

protected Map<Unit,Integer> subroutineToReturnAddressSlot

code

protected List<String> code

isEmittingMethodCode

protected boolean isEmittingMethodCode

labelCount

protected int labelCount

isNextGotoAJsr

protected boolean isNextGotoAJsr

returnAddressSlot

protected int returnAddressSlot

currentStackHeight

protected int currentStackHeight

maxStackHeight

protected int maxStackHeight

localToGroup

protected Map<Local,Object> localToGroup

groupToColorCount

protected Map<Object,Integer> groupToColorCount

localToColor

protected Map<Local,Integer> localToColor

blockToStackHeight

protected Map<Block,Integer> blockToStackHeight

blockToLogicalStackHeight

protected Map<Block,Integer> blockToLogicalStackHeight
Constructor Detail

AbstractJasminClass

public AbstractJasminClass(SootClass sootClass)
Method Detail

slashify

public static String slashify(String s)

sizeOfType

public static int sizeOfType(Type t)

argCountOf

public static int argCountOf(SootMethodRef m)

jasminDescriptorOf

public static String jasminDescriptorOf(Type type)

jasminDescriptorOf

public static String jasminDescriptorOf(SootMethodRef m)

emit

protected void emit(String s)

okayEmit

protected void okayEmit(String s)

assignColorsToLocals

protected void assignColorsToLocals(Body body)

emitMethod

protected void emitMethod(SootMethod method)

emitMethodBody

protected abstract void emitMethodBody(SootMethod method)

print

public void print(PrintWriter out)