Package bytecodeparser.analysis.stack

Examples of bytecodeparser.analysis.stack.TrackableArray


    } else {
      for(int i = 0; i < dimensions; i++)
        stack.pop();
    }
    if(size > -1)
      stack.push(new TrackableArray(signature, size));
    else stack.push(new Array(signature));
  }
View Full Code Here


    if(nbParams > 0) {
      int stackIndex = 0;
      if(frame.stackBefore.stack.get(stackIndex) instanceof TOP)
        stackIndex = 1;
      if(frame.stackBefore.stack.get(stackIndex) instanceof TrackableArray) {
        TrackableArray trackableArray = (TrackableArray) frame.stackBefore.stack.get(stackIndex);
        varargs = resolveParameters(Arrays.asList(trackableArray.elements), trackableArray.elements.length, true);
      }
    }
    if(decoded.op.as(MethodInvocationOpcode.class).isInstanceMethod()) {
      StackElement subjectSE = frame.stackBefore.stack.get(StackElementLength.add(decoded.pops));
View Full Code Here

  public void simulate(Stack stack) {
    if(!this.op.as(ArrayOpcode.class).isLoad) {
      StackElementLength[] pops = Arrays.copyOf(getPops(), getPops().length - 1);
      StackElement subject = stack.getFromTop(StackElementLength.add(pops));
      if(subject instanceof TrackableArray) {
        TrackableArray array = (TrackableArray) subject;
        StackElement i = stack.getFromTop(StackElementLength.add(array.componentLength));
        if(i instanceof IntegerConstant) {
          StackElement value = stack.peek(array.componentLength);
          array.set(((IntegerConstant) i).getValue(), value);
        } else {
          array.isDirty = true;
        }
      }
    }
View Full Code Here

TOP

Related Classes of bytecodeparser.analysis.stack.TrackableArray

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.