public abstract class AbstractJasminClass
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<Block,java.lang.Integer> |
blockToLogicalStackHeight |
protected java.util.Map<Block,java.lang.Integer> |
blockToStackHeight |
protected java.util.List<java.lang.String> |
code |
protected int |
currentStackHeight |
protected java.util.Map<java.lang.Object,java.lang.Integer> |
groupToColorCount |
protected boolean |
isEmittingMethodCode |
protected boolean |
isNextGotoAJsr |
protected int |
labelCount |
protected java.util.Map<Local,java.lang.Integer> |
localToColor |
protected java.util.Map<Local,java.lang.Object> |
localToGroup |
protected java.util.Map<Local,java.lang.Integer> |
localToSlot |
protected int |
maxStackHeight |
protected int |
returnAddressSlot |
protected java.util.Map<Unit,java.lang.Integer> |
subroutineToReturnAddressSlot |
protected java.util.Map<Unit,java.lang.String> |
unitToLabel |
Constructor and Description |
---|
AbstractJasminClass(SootClass sootClass) |
Modifier and Type | Method and Description |
---|---|
static int |
argCountOf(SootMethodRef m) |
protected void |
assignColorsToLocals(Body body) |
protected java.lang.String |
doubleToString(double d) |
protected java.lang.String |
doubleToString(DoubleConstant v) |
protected void |
emit(java.lang.String s) |
protected void |
emitMethod(SootMethod method) |
protected abstract void |
emitMethodBody(SootMethod method) |
protected java.lang.String |
floatToString(float d) |
protected java.lang.String |
floatToString(FloatConstant v) |
static java.lang.String |
jasminDescriptorOf(SootMethodRef m) |
static java.lang.String |
jasminDescriptorOf(Type type) |
protected void |
okayEmit(java.lang.String s) |
void |
print(java.io.PrintWriter out) |
static int |
sizeOfType(Type t) |
static java.lang.String |
slashify(java.lang.String s) |
protected java.util.Map<Unit,java.lang.String> unitToLabel
protected java.util.Map<Local,java.lang.Integer> localToSlot
protected java.util.Map<Unit,java.lang.Integer> subroutineToReturnAddressSlot
protected java.util.List<java.lang.String> code
protected boolean isEmittingMethodCode
protected int labelCount
protected boolean isNextGotoAJsr
protected int returnAddressSlot
protected int currentStackHeight
protected int maxStackHeight
protected java.util.Map<Local,java.lang.Object> localToGroup
protected java.util.Map<java.lang.Object,java.lang.Integer> groupToColorCount
protected java.util.Map<Local,java.lang.Integer> localToColor
protected java.util.Map<Block,java.lang.Integer> blockToStackHeight
protected java.util.Map<Block,java.lang.Integer> blockToLogicalStackHeight
public AbstractJasminClass(SootClass sootClass)
public static java.lang.String slashify(java.lang.String s)
public static int sizeOfType(Type t)
public static int argCountOf(SootMethodRef m)
public static java.lang.String jasminDescriptorOf(Type type)
public static java.lang.String jasminDescriptorOf(SootMethodRef m)
protected void emit(java.lang.String s)
protected void okayEmit(java.lang.String s)
protected void assignColorsToLocals(Body body)
protected void emitMethod(SootMethod method)
protected abstract void emitMethodBody(SootMethod method)
public void print(java.io.PrintWriter out)
protected java.lang.String doubleToString(DoubleConstant v)
protected java.lang.String doubleToString(double d)
protected java.lang.String floatToString(FloatConstant v)
protected java.lang.String floatToString(float d)