Package net.sf.joafip.store.entity.proxy

Examples of net.sf.joafip.store.entity.proxy.StackElement


    final EnumStackEltType type1 = currentStackElement.getType();
    if (type1.getCategory() == 2) {
      throw new IllegalArgumentException(
          "can not dup X2 type of category 2");
    }
    final StackElement value2 = pop(currentStackElement);
    final EnumStackEltType type2 = value2.getType();
    if (type2.getCategory() == 2) {
      throw new IllegalArgumentException(
          "can not dup X2 type of category 2");
    }
    StackElement pointer = pop(value2);
    pointer = push(pointer, type1);
    if (currentStackElement.isThisReference()) {
      pointer.setIsThisRef();
    }
    pointer = push(pointer, type2);
    if (value2.isThisReference()) {
      pointer.setIsThisRef();
    }
    return pointer;
  }
View Full Code Here


    // ..., [arg1, [arg2 ...]] ...
    // INVOKEINTERFACE
    // ..., objectref, [arg1, [arg2 ...]] ...
    // INVOKEDYNAMIC 186 unused
    //
    StackElement pointer = currentStackElement;
    final Type[] types = Type.getArgumentTypes(desc);
    for (int index = types.length - 1; index >= 0; index--) {
      pointer = pop(pointer, typeFromAsmType(types[index]));
    }
    if (opcode == Opcodes.INVOKESTATIC) {
      internalCall = true;
    } else {
      if (!EnumStackEltType.REF.equals(pointer.getType())) {
        throw new EnhanceException("bad type " + pointer.getType()
            + " for opcode " + opcode);
      }
      internalCall = !ownedMethodCall || pointer.isThisReference();
      pointer = pop(pointer);
    }
    final Type returnType = Type.getReturnType(desc);
    if (!Type.VOID_TYPE.equals(returnType)) {
      pointer = push(pointer, typeFromAsmType(returnType));
View Full Code Here

  }

  public StackElement multiANewArray(final int dims,
      final StackElement currentStackElement) throws EnhanceException {
    // ..., count1, [count2, ...] => ..., arrayref
    StackElement pointer = currentStackElement;
    for (int count = 0; count < dims; count++) {
      pointer = pop(pointer, EnumType.INT);
    }
    return push(pointer, EnumType.REF);
  }
View Full Code Here

      final StackElement startStackElement) throws EnhanceException {
    final Deque<OpcodeNode> toVisitQue = new LinkedList<OpcodeNode>();
    final Deque<StackElement> stackElementQue = new LinkedList<StackElement>();
    final Set<OpcodeNode> visited = new HashSet<OpcodeNode>();
    OpcodeNode currentOpcodeNode = startOpcodeNode;
    StackElement stackElement = startStackElement;
    visited.add(currentOpcodeNode);
    while (currentOpcodeNode != null) {
      listener.currentOpcode(currentOpcodeNode);
      currentOpcodeNode.setBeforeExecutionStackElement(stackElement);
      stackElement = currentOpcodeNode.interprete();
View Full Code Here

TOP

Related Classes of net.sf.joafip.store.entity.proxy.StackElement

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.