Package kilim.analysis
Class ClassWeaver
java.lang.Object
kilim.analysis.ClassWeaver
This class is the main entry point for the Weave tool. It uses
ClassFlow to parse and analyze a class file, and writes out a
CPS transformed file if needed
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaccept(org.objectweb.asm.ClassVisitor cv) (package private) void(package private) StringcreateStateClass(ValInfoList valInfoList) Create a custom class (structure) to hold the state.(package private) StringgetName()(package private) SAMweavergetSAMWeaver(String owner, String methodName, String desc, boolean itf) (package private) booleanprivate StringmakeClassName(int[] numByType) (package private) boolean(package private) booleanstatic voidreset()(package private) static String[]toStringArray(List list) voidweave()
-
Field Details
-
classFlow
-
classInfoList
-
stateClasses_
-
context
-
samWeavers
-
-
Constructor Details
-
ClassWeaver
- Throws:
IOException
-
-
Method Details
-
reset
public static void reset() -
weave
- Throws:
KilimException
-
accept
private void accept(org.objectweb.asm.ClassVisitor cv) -
toStringArray
-
addClassInfo
-
getClassInfos
-
needsWeaving
-
needsWeaving
boolean needsWeaving() -
createStateClass
Create a custom class (structure) to hold the state. The name of the state reflects the numbers of the various VMtypes in valInfoList. class kilim.SO2IJ3 reflects a class that stores two Objects one Integer and 3 longs.class kilim.SO2IJ3 extends kilim.State { public Object f1, f2; public int f3; public long f4, f5, f6; }If there's no data to store, we use the kilim.State class directly to store the basic amount of data necessary to restore the stack. -
makeClassName
-
isInterface
boolean isInterface() -
getSAMWeaver
-
getName
String getName()
-