WALA/com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java

100 lines
4.0 KiB
Java
Raw Normal View History

package com.ibm.wala.shrikeCT;
import java.util.ArrayList;
import java.util.List;
import com.ibm.wala.shrikeCT.ClassReader.AttrIterator;
import com.ibm.wala.shrikeCT.StackMapConstants.Item;
import com.ibm.wala.shrikeCT.StackMapConstants.ObjectType;
import com.ibm.wala.shrikeCT.StackMapConstants.StackMapFrame;
import com.ibm.wala.shrikeCT.StackMapConstants.StackMapType;
new test to remind me that prototype no longer works with correlation tracking: com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShapeRhino.java com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShape.java com.ibm.wala.cast.js.test.data/examples-src/pages/prototype.html work (not yet finished) on fixes to property accesses for JavaScript: com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java currently unused tests to remind me to fix bugs: com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java com.ibm.wala.cast.js.test.data/examples-src/tests/loops.js com.ibm.wala.cast.js.test.data/examples-src/tests/primitive_strings.js fixes to exception handler code generation in JavaScript: com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java com.ibm.wala.cast.js.test.data/examples-src/tests/try.js com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java fixes to make the system build on both juno and luna com.ibm.wala.cast.js.test.data/pom.xml pom.xml targets/e42/e42.target targets/e44/e44.target targets/pom.xml com.ibm.wala.core.tests/META-INF/MANIFEST.MF com.ibm.wala.dalvik.test/META-INF/MANIFEST.MF com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/FakeExceptionTypeBinding.java com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java com.ibm.wala.ide.jsdt.tests/META-INF/MANIFEST.MF com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java com.ibm.wala.ide/src/com/ibm/wala/ide/util/EclipseProjectPath.java com.ibm.wala.ide/src/com/ibm/wala/ide/util/ProgressMonitorDelegate.java beginnings of "pointer analysis" on top of field-based analysis com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/PropVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/RetVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VarVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VertexFactory.java com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PointerAnalysis.java com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java fixes for crashes in correlartion tracking com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/ClosureExtractor.java fixes for Dalvik IR generation com.ibm.wala.core/src/com/ibm/wala/cfg/BytecodeCFG.java com.ibm.wala.core/src/com/ibm/wala/cfg/ShrikeCFG.java com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/drivers/APKCallGraphDriver.java com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparison.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java fixes to stack map generation when instrumenting for Java 7 com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/DynamicCallGraph.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantInstruction.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapConstants.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java
2014-10-15 07:01:38 +00:00
import com.ibm.wala.shrikeCT.StackMapConstants.UninitializedType;
public class StackMapTableReader extends AttributeReader {
private List<StackMapFrame> frames;
public List<StackMapFrame> frames() {
return frames;
}
private StackMapType item(int offset) throws InvalidClassFileException {
Item item = StackMapConstants.items[cr.getByte(offset)];
new test to remind me that prototype no longer works with correlation tracking: com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShapeRhino.java com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShape.java com.ibm.wala.cast.js.test.data/examples-src/pages/prototype.html work (not yet finished) on fixes to property accesses for JavaScript: com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java currently unused tests to remind me to fix bugs: com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java com.ibm.wala.cast.js.test.data/examples-src/tests/loops.js com.ibm.wala.cast.js.test.data/examples-src/tests/primitive_strings.js fixes to exception handler code generation in JavaScript: com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java com.ibm.wala.cast.js.test.data/examples-src/tests/try.js com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java fixes to make the system build on both juno and luna com.ibm.wala.cast.js.test.data/pom.xml pom.xml targets/e42/e42.target targets/e44/e44.target targets/pom.xml com.ibm.wala.core.tests/META-INF/MANIFEST.MF com.ibm.wala.dalvik.test/META-INF/MANIFEST.MF com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/FakeExceptionTypeBinding.java com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java com.ibm.wala.ide.jsdt.tests/META-INF/MANIFEST.MF com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java com.ibm.wala.ide/src/com/ibm/wala/ide/util/EclipseProjectPath.java com.ibm.wala.ide/src/com/ibm/wala/ide/util/ProgressMonitorDelegate.java beginnings of "pointer analysis" on top of field-based analysis com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/PropVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/RetVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VarVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VertexFactory.java com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PointerAnalysis.java com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java fixes for crashes in correlartion tracking com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/ClosureExtractor.java fixes for Dalvik IR generation com.ibm.wala.core/src/com/ibm/wala/cfg/BytecodeCFG.java com.ibm.wala.core/src/com/ibm/wala/cfg/ShrikeCFG.java com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/drivers/APKCallGraphDriver.java com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparison.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java fixes to stack map generation when instrumenting for Java 7 com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/DynamicCallGraph.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantInstruction.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapConstants.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java
2014-10-15 07:01:38 +00:00
if (Item.ITEM_Uninitalized == item) {
return new UninitializedType("#" + cr.getUShort(offset+1) + "#unknown");
} else if (Item.ITEM_Object == item) {
return new ObjectType(cr.getCP().getCPClass(cr.getUShort(offset+1)));
} else {
return item;
}
}
public StackMapTableReader(AttrIterator iter) throws InvalidClassFileException {
super(iter, "StackMapTable");
frames = new ArrayList<>();
int entries = cr.getUShort(attr+6);
int ptr = attr + 8;
for(int i = 0; i < entries; i++) {
int frameType = (0x000000ff & cr.getByte(ptr++));
new test to remind me that prototype no longer works with correlation tracking: com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShapeRhino.java com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShape.java com.ibm.wala.cast.js.test.data/examples-src/pages/prototype.html work (not yet finished) on fixes to property accesses for JavaScript: com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java currently unused tests to remind me to fix bugs: com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java com.ibm.wala.cast.js.test.data/examples-src/tests/loops.js com.ibm.wala.cast.js.test.data/examples-src/tests/primitive_strings.js fixes to exception handler code generation in JavaScript: com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java com.ibm.wala.cast.js.test.data/examples-src/tests/try.js com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java fixes to make the system build on both juno and luna com.ibm.wala.cast.js.test.data/pom.xml pom.xml targets/e42/e42.target targets/e44/e44.target targets/pom.xml com.ibm.wala.core.tests/META-INF/MANIFEST.MF com.ibm.wala.dalvik.test/META-INF/MANIFEST.MF com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/FakeExceptionTypeBinding.java com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java com.ibm.wala.ide.jsdt.tests/META-INF/MANIFEST.MF com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java com.ibm.wala.ide/src/com/ibm/wala/ide/util/EclipseProjectPath.java com.ibm.wala.ide/src/com/ibm/wala/ide/util/ProgressMonitorDelegate.java beginnings of "pointer analysis" on top of field-based analysis com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/PropVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/RetVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VarVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VertexFactory.java com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PointerAnalysis.java com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java fixes for crashes in correlartion tracking com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/ClosureExtractor.java fixes for Dalvik IR generation com.ibm.wala.core/src/com/ibm/wala/cfg/BytecodeCFG.java com.ibm.wala.core/src/com/ibm/wala/cfg/ShrikeCFG.java com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/drivers/APKCallGraphDriver.java com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparison.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java fixes to stack map generation when instrumenting for Java 7 com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/DynamicCallGraph.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantInstruction.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapConstants.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java
2014-10-15 07:01:38 +00:00
if (frameType < 64) {
int offset = frameType;
frames.add(new StackMapFrame(frameType, offset, new StackMapType[0], new StackMapType[0]));
} else if (frameType < 128) {
int offset = frameType - 64;
StackMapType stack1 = item(ptr);
ptr += (stack1 instanceof ObjectType)? 3: 1;
frames.add(new StackMapFrame(frameType, offset, new StackMapType[0], new StackMapType[]{ stack1 }));
} else if (frameType == 247) {
int offset = cr.getUShort(ptr); ptr += 2;
StackMapType stack1 = item(ptr);
ptr += (stack1 instanceof ObjectType)? 3: 1;
frames.add(new StackMapFrame(frameType, offset, new StackMapType[0], new StackMapType[]{ stack1 }));
} else if (frameType >= 248 && frameType <= 250) {
int offset = cr.getUShort(ptr); ptr += 2;
frames.add(new StackMapFrame(frameType, offset, new StackMapType[0], new StackMapType[0]));
} else if (frameType == 251) {
int offset = cr.getUShort(ptr); ptr += 2;
frames.add(new StackMapFrame(frameType, offset, new StackMapType[0], new StackMapType[0]));
} else if (frameType >= 252 && frameType <= 254) {
StackMapType[] locals = new StackMapType[ frameType - 251 ];
int offset = cr.getUShort(ptr); ptr += 2;
for(int j = 0; j < locals.length; j++) {
locals[j] = item(ptr);
ptr += (locals[j] instanceof ObjectType)? 3: 1;
}
frames.add(new StackMapFrame(frameType, offset, locals, new StackMapType[0]));
} else if (frameType == 255) {
int offset = cr.getUShort(ptr); ptr += 2;
int numLocals = cr.getUShort(ptr); ptr += 2;
StackMapType[] locals = new StackMapType[ numLocals ];
for(int j = 0; j < numLocals; j++) {
locals[j] = item(ptr);
ptr += (locals[j] instanceof ObjectType)? 3: 1;
}
int numStack = cr.getUShort(ptr); ptr += 2;
StackMapType[] stack = new StackMapType[ numStack ];
for(int j = 0; j < numStack; j++) {
stack[j] = item(ptr);
new test to remind me that prototype no longer works with correlation tracking: com.ibm.wala.cast.js.rhino.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShapeRhino.java com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestPrototypeCallGraphShape.java com.ibm.wala.cast.js.test.data/examples-src/pages/prototype.html work (not yet finished) on fixes to property accesses for JavaScript: com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstSSAPropagationCallGraphBuilder.java com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ipa/callgraph/AstJavaSSAPropagationCallGraphBuilder.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/JSSSAPropagationCallGraphBuilder.java currently unused tests to remind me to fix bugs: com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java com.ibm.wala.cast.js.test.data/examples-src/tests/loops.js com.ibm.wala.cast.js.test.data/examples-src/tests/primitive_strings.js fixes to exception handler code generation in JavaScript: com.ibm.wala.cast.js.rhino/source/com/ibm/wala/cast/js/translator/RhinoToAstTranslator.java com.ibm.wala.cast.js.test.data/examples-src/tests/try.js com.ibm.wala.cast.js.test/harness-src/com/ibm/wala/cast/js/test/TestSimpleCallGraphShape.java fixes to make the system build on both juno and luna com.ibm.wala.cast.js.test.data/pom.xml pom.xml targets/e42/e42.target targets/e44/e44.target targets/pom.xml com.ibm.wala.core.tests/META-INF/MANIFEST.MF com.ibm.wala.dalvik.test/META-INF/MANIFEST.MF com.ibm.wala.ide.jdt.test/META-INF/MANIFEST.MF com.ibm.wala.ide.jdt/source/com/ibm/wala/cast/java/translator/jdt/FakeExceptionTypeBinding.java com.ibm.wala.ide.jdt/source/com/ibm/wala/ide/util/JavaEclipseProjectPath.java com.ibm.wala.ide.jsdt.tests/META-INF/MANIFEST.MF com.ibm.wala.ide.jsdt.tests/src/com/ibm/wala/ide/jsdt/tests/AbstractJSProjectScopeTest.java com.ibm.wala.ide/src/com/ibm/wala/ide/util/EclipseProjectPath.java com.ibm.wala.ide/src/com/ibm/wala/ide/util/ProgressMonitorDelegate.java beginnings of "pointer analysis" on top of field-based analysis com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/FlowGraph.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/PropVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/RetVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VarVertex.java com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/callgraph/fieldbased/flowgraph/vertices/VertexFactory.java com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/PointerAnalysis.java com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/ExceptionReturnValueKey.java fixes for crashes in correlartion tracking com.ibm.wala.cast.js/source/com/ibm/wala/cast/js/ipa/callgraph/correlations/extraction/ClosureExtractor.java fixes for Dalvik IR generation com.ibm.wala.core/src/com/ibm/wala/cfg/BytecodeCFG.java com.ibm.wala.core/src/com/ibm/wala/cfg/ShrikeCFG.java com.ibm.wala.core/src/com/ibm/wala/ssa/SSACFG.java com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/drivers/APKCallGraphDriver.java com.ibm.wala.dalvik.test/source/com/ibm/wala/dalvik/test/callGraph/JVMLDalvikComparison.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/classLoader/DexCFG.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/dex/instructions/UnaryOperation.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/AbstractIntRegisterMachine.java com.ibm.wala.dalvik/src/com/ibm/wala/dalvik/ssa/DexSSABuilder.java fixes to stack map generation when instrumenting for Java 7 com.ibm.wala.shrike/src/com/ibm/wala/shrike/cg/DynamicCallGraph.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ConstantInstruction.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Analyzer.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/ClassHierarchy.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/analysis/Verifier.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/shrikeCT/ClassInstrumenter.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapConstants.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableReader.java com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/StackMapTableWriter.java
2014-10-15 07:01:38 +00:00
ptr += (stack[j].isObject())? 3: 1;
}
frames.add(new StackMapFrame(frameType, offset, locals, stack));
}
}
}
public static List<StackMapFrame> readStackMap(CodeReader code) throws InvalidClassFileException, IllegalArgumentException {
ClassReader.AttrIterator iter = new ClassReader.AttrIterator();
code.initAttributeIterator(iter);
for (; iter.isValid(); iter.advance()) {
if (iter.getName().equals("StackMapTable")) {
StackMapTableReader r = new StackMapTableReader(iter);
return r.frames();
}
}
return null;
}
}