Refine search
public StackState dup() { if (contents.isEmpty()) { throw new InvalidBytecodeException("cannot dup empty stack"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup wide type"); } return newStack(type); }
public StackState dup() { if (contents.isEmpty()) { throw new InvalidBytecodeException("cannot dup empty stack"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup wide type"); } return newStack(type); }
public StackState dup() { if (contents.isEmpty()) { throw new InvalidBytecodeException("cannot dup empty stack"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup wide type"); } return newStack(type); }
public StackState dup() { if (contents.isEmpty()) { throw new InvalidBytecodeException("cannot dup empty stack"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup wide type"); } return newStack(type); }
public StackState dup() { if (contents.isEmpty()) { throw new InvalidBytecodeException("cannot dup empty stack"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup wide type"); } return newStack(type); }
public StackState dupX2() { if (contents.size() < 3) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 3) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }
/** * pop a non-wide type from the top of the stack */ public StackState pop(int no) { if (no == 0) { return this; } if (contents.size() < no) { throw new InvalidBytecodeException("cannot pop" + no + ", only " + contents.size() + " on stack " + toString()); } StackEntry type = contents.get(contents.size() - no); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Pop" + no + " would split wide type " + toString()); } return new StackState(contents.subList(0, contents.size() - no), constPool); }
public StackState dupX1() { if (contents.size() < 2) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 2) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }
public StackState dupX2() { if (contents.size() < 3) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 3) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }
public StackState dupX1() { if (contents.size() < 2) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 2) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }
/** * pop a non-wide type from the top of the stack */ public StackState pop(int no) { if (no == 0) { return this; } if (contents.size() < no) { throw new InvalidBytecodeException("cannot pop" + no + ", only " + contents.size() + " on stack " + toString()); } StackEntry type = contents.get(contents.size() - no); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Pop" + no + " would split wide type " + toString()); } return new StackState(contents.subList(0, contents.size() - no), constPool); }
/** * pop a non-wide type from the top of the stack */ public StackState pop(int no) { if (no == 0) { return this; } if (contents.size() < no) { throw new InvalidBytecodeException("cannot pop" + no + ", only " + contents.size() + " on stack " + toString()); } StackEntry type = contents.get(contents.size() - no); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Pop" + no + " would split wide type " + toString()); } return new StackState(contents.subList(0, contents.size() - no), constPool); }
public StackState dupX1() { if (contents.size() < 2) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 2) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }
public StackState dupX2() { if (contents.size() < 3) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 3) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }
/** * pop a non-wide type from the top of the stack */ public StackState pop(int no) { if (no == 0) { return this; } if (contents.size() < no) { throw new InvalidBytecodeException("cannot pop" + no + ", only " + contents.size() + " on stack " + toString()); } StackEntry type = contents.get(contents.size() - no); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Pop" + no + " would split wide type " + toString()); } return new StackState(contents.subList(0, contents.size() - no), constPool); }
public StackState dupX2() { if (contents.size() < 3) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 3) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }
public StackState dupX2() { if (contents.size() < 3) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 3) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }
/** * pop a non-wide type from the top of the stack */ public StackState pop(int no) { if (no == 0) { return this; } if (contents.size() < no) { throw new InvalidBytecodeException("cannot pop" + no + ", only " + contents.size() + " on stack " + toString()); } StackEntry type = contents.get(contents.size() - no); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Pop" + no + " would split wide type " + toString()); } return new StackState(contents.subList(0, contents.size() - no), constPool); }
public StackState dupX1() { if (contents.size() < 2) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 2) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }
public StackState dupX1() { if (contents.size() < 2) { throw new InvalidBytecodeException("cannot dup_x1, stack does not have enough items"); } StackEntry type = top(); if (type.getType() == StackEntryType.TOP) { throw new InvalidBytecodeException("Cannot dup_x1 wide type"); } ArrayList<StackEntry> ret = new ArrayList<StackEntry>(1 + contents.size()); for (int i = 0; i < contents.size(); ++i) { if (i == contents.size() - 2) { ret.add(top()); } ret.add(contents.get(i)); } return new StackState(ret, constPool); }