public final class Stack extends Object
Needs to be public so that instrumented code can access it. ANY CHANGE IN THIS CLASS NEEDS TO BE SYNCHRONIZED WITH
InstrumentMethod
Modifier and Type | Field and Description |
---|---|
int |
curMethodSP |
long[] |
dataLong |
Object[] |
dataObject |
static SuspendableException |
exception_instance_not_for_user_code
sadly this need to be here
|
Modifier and Type | Method and Description |
---|---|
double |
getDouble(int idx)
Any change to this method must also be reflected in
InstrumentMethodHelper.inlineStackGetDoubleMethod(org.objectweb.asm.MethodVisitor,
int, int) |
float |
getFloat(int idx)
Any change to this method must also be reflected in
InstrumentMethodHelper.inlineStackGetFloatMethod(org.objectweb.asm.MethodVisitor,
int, int) |
int |
getInt(int idx)
Any change to this method must also be reflected in
InstrumentMethodHelper.inlineStackGetIntMethod(org.objectweb.asm.MethodVisitor,
int, int) |
long |
getLong(int idx)
Any change to this method must also be reflected in
InstrumentMethodHelper.inlineStackGetLongMethod(org.objectweb.asm.MethodVisitor,
int, int) |
Object |
getObject(int idx)
Any change to this method must also be reflected in
InstrumentMethodHelper#inlineStackGetObjectMethod(org.objectweb.asm.MethodVisitor,
int, int) |
static Stack |
getStack() |
int |
nextMethodEntry()
called at the begin of a method
|
void |
popMethod()
Called at the end of a method.
|
static void |
push(double value,
Stack s,
int idx) |
static void |
push(float value,
Stack s,
int idx) |
static void |
push(int value,
Stack s,
int idx) |
static void |
push(long value,
Stack s,
int idx) |
static void |
push(Object value,
Stack s,
int idx) |
void |
pushMethodAndReserveSpace(int entry,
int numSlots)
Called before a method is called.
|
public static SuspendableException exception_instance_not_for_user_code
public long[] dataLong
public Object[] dataObject
public int curMethodSP
public static Stack getStack()
public final void pushMethodAndReserveSpace(int entry, int numSlots)
entry
- the entry point in the method for resumenumSlots
- the number of required stack slots for storing the statepublic final void popMethod()
public final int nextMethodEntry()
public static void push(int value, Stack s, int idx)
public static void push(float value, Stack s, int idx)
public static void push(long value, Stack s, int idx)
public static void push(double value, Stack s, int idx)
public final int getInt(int idx)
InstrumentMethodHelper.inlineStackGetIntMethod(org.objectweb.asm.MethodVisitor,
int, int)
public final float getFloat(int idx)
InstrumentMethodHelper.inlineStackGetFloatMethod(org.objectweb.asm.MethodVisitor,
int, int)
public final long getLong(int idx)
InstrumentMethodHelper.inlineStackGetLongMethod(org.objectweb.asm.MethodVisitor,
int, int)
public final double getDouble(int idx)
InstrumentMethodHelper.inlineStackGetDoubleMethod(org.objectweb.asm.MethodVisitor,
int, int)
public final Object getObject(int idx)
InstrumentMethodHelper#inlineStackGetObjectMethod(org.objectweb.asm.MethodVisitor,
int, int)
Copyright © 2015 Rice University - Department of Computer Science. All rights reserved.