Beispiel #1
0
 public BinaryOperationAction(CalculatedValue target, Op operation, JavaValue value1, JavaValue value2)
 {
     Target    = target ?? throw new ArgumentNullException(nameof(target));
     Operation = operation;
     Value1    = value1 ?? throw new ArgumentNullException(nameof(value1));
     Value2    = value2 ?? throw new ArgumentNullException(nameof(value2));
 }
Beispiel #2
0
 public ConditionalJumpAction(JavaValue value, ActionBlock target, JumpCondition condition, JavaValue valueCmp = null)
 {
     Value     = value ?? throw new ArgumentNullException(nameof(value));
     Target    = target ?? throw new ArgumentNullException(nameof(target));
     Condition = condition;
     ValueCmp  = valueCmp;
 }
Beispiel #3
0
        public InvokeAction(CalculatedValue target, JavaValue instance, MethodReference method, JavaValue[] args, bool virt = false)
        {
            Target   = target;
            Instance = instance;
            Method   = method;
            Args     = args;
            Virtual  = virt;

            if (Instance == null)
            {
                Debug.Assert(!Virtual || !Method.HasThis);
            }
        }
Beispiel #4
0
 public SetFieldAction(JavaValue target, JavaValue value, FieldReference field)
 {
     Target = target;
     Value  = value;
     Field  = field;
 }
Beispiel #5
0
 public GetFieldAction(CalculatedValue target, JavaValue from, FieldReference field)
 {
     Target = target;
     From   = @from;
     Field  = field;
 }
Beispiel #6
0
 public SetStaticAction(JavaValue value, FieldReference field)
 {
     Value = value;
     Field = field;
 }
Beispiel #7
0
 public ArrayIndexAction(CalculatedValue target, JavaValue array, JavaValue index)
 {
     Target = target;
     Array  = array;
     Index  = index;
 }
Beispiel #8
0
 public ArrayLengthAction(CalculatedValue target, JavaValue array)
 {
     Target = target;
     Array  = array;
 }
Beispiel #9
0
 public JavaState Pop(out JavaValue top)
 {
     return(new JavaState(_stack.Pop(out top), _locals));
 }
Beispiel #10
0
 public MonitorAction(JavaValue value, bool isEnter)
 {
     Value   = value;
     IsEnter = isEnter;
 }
Beispiel #11
0
 public ThrowAction(JavaValue value)
 {
     Value = value;
 }
Beispiel #12
0
 public ReturnAction(JavaValue value = null)
 {
     Value = value;
 }
Beispiel #13
0
 public ConstantSetAction(CalculatedValue target, JavaValue value)
 {
     Target = target;
     Value  = value;
 }
Beispiel #14
0
 public UnaryOperationAction(CalculatedValue target, Op operation, JavaValue value)
 {
     Target    = target ?? throw new ArgumentNullException(nameof(target));
     Operation = operation;
     Value     = value ?? throw new ArgumentNullException(nameof(value));
 }
Beispiel #15
0
 public JavaState Push(JavaValue o)
 {
     return(new JavaState(_stack.Push(o), _locals));
 }
Beispiel #16
0
 public JavaState PushIf(bool cond, JavaValue val = null)
 {
     return(cond ? Push(val) : this);
 }
Beispiel #17
0
 public NewArrayAction(CalculatedValue target, TypeReference type, JavaValue count)
 {
     Target = target;
     Type   = type;
     Count  = count;
 }
Beispiel #18
0
 public JavaState Store(int index, JavaValue value)
 {
     return(new JavaState(_stack, _locals.SetItem(index, value)));
 }
Beispiel #19
0
 public ArraySetAction(JavaValue array, JavaValue index, JavaValue value)
 {
     Array = array;
     Index = index;
     Value = value;
 }