TracedStack stack) int maximumStackSize = stack.size(); int typeCount = 0; Value value = stack.getTop(index); Value value = stack.getTop(index); Value producerValue = stack.getTopProducerValue(index);
public void dup2_x1() { super.dup2_x1(); producerPop(); producerPop(); producerPop(); producerPush(); producerPush(); producerPush(); producerPush(); producerPush(); }
stacksBefore[instructionOffset] = new TracedStack(stack); stacksBefore[instructionOffset].copy(stack); boolean stackChanged = stacksBefore[instructionOffset].generalize(stack); stack.generalize(stacksBefore[instructionOffset]); stack.setProducerValue(storeValue); stacksAfter[instructionOffset] = new TracedStack(stack); stacksAfter[instructionOffset].copy(stack); stacksAfter[instructionOffset].generalize(stack); new TracedStack(stack), branchTargets.instructionOffset(index)); new TracedStack(stack), instructionOffset); break;
partialEvaluator.getStackBefore(offset).getTopProducerValue(0).instructionOffsetValue(); partialEvaluator.getStackBefore(producerOffset).getTop(1).referenceValue();
/** * Marks the enum class of the specified pushed type as complex. */ private void markPushedComplexEnumType(int offset) { ReferenceValue referenceValue = partialEvaluator.getStackAfter(offset).getTop(0).referenceValue(); markComplexEnumType(referenceValue); }
public String toString() { StringBuffer buffer = new StringBuffer(); for (int index = 0; index < this.size(); index++) { Value value = this.values[index]; Value producerValue = producerStack.getBottom(index); buffer = buffer.append('[') .append(producerValue == null ? "empty:" : producerValue.toString()) .append(value == null ? "empty" : value.toString()) .append(']'); } return buffer.toString(); }
public void pop2() { super.pop2(); producerPop(); producerPop(); }
TracedStack stack = new TracedStack(codeAttribute.u2maxStack); stack.setProducerValue(storeValue);
/** * Marks the stack entry and the corresponding producing instructions * of the consumer at the given offset. * @param consumerOffset the offset of the consumer. * @param stackIndex the index of the stack entry to be marked * (counting from the top). */ private void markStackEntryProducers(int consumerOffset, int stackIndex) { TracedStack tracedStack = partialEvaluator.getStackBefore(consumerOffset); int stackBottomIndex = tracedStack.size() - 1 - stackIndex; if (!isStackSimplifiedBefore(consumerOffset, stackBottomIndex)) { markStackEntryProducers(tracedStack.getTopProducerValue(stackIndex).instructionOffsetValue(), stackBottomIndex); } }
TracedStack stack = new TracedStack(codeAttribute.u2maxStack); stack.setProducerValue(storeValue); null; stack.push(valueFactory.createReferenceValue(catchClassName, catchClass, false));
public void push(Value value) { super.push(value); producerPush(); // Account for the extra space required by Category 2 values. if (value.isCategory2()) { producerPush(); } }
stacksBefore[offset] .generalize(other.stacksBefore[offset]); variablesAfter[offset] .generalize(other.variablesAfter[offset], false); stacksAfter[offset] .generalize(other.stacksAfter[offset]);
TracedStack stack = new TracedStack(codeAttribute.u2maxStack);
isDupOrSwap(codeAttribute.code[producerOffset])) producers = partialEvaluator.getStackBefore(producerOffset).getTopProducerValue(0).instructionOffsetValue(); producerOffset = producers.instructionOffset(0);
stacksBefore[instructionOffset] = new TracedStack(stack); stacksBefore[instructionOffset].copy(stack); boolean stackChanged = stacksBefore[instructionOffset].generalize(stack); stack.generalize(stacksBefore[instructionOffset]); stack.setProducerValue(storeValue); stacksAfter[instructionOffset] = new TracedStack(stack); stacksAfter[instructionOffset].copy(stack); stacksAfter[instructionOffset].generalize(stack); new TracedStack(stack), branchTargets.instructionOffset(index)); new TracedStack(stack), instructionOffset); break;
partialEvaluator.getStackBefore(offset).getTopProducerValue(0).instructionOffsetValue(); partialEvaluator.getStackBefore(producerOffset).getTop(1).referenceValue();
/** * Marks the enum class of the specified pushed type as complex. */ private void markPushedComplexEnumType(int offset) { ReferenceValue referenceValue = partialEvaluator.getStackAfter(offset).getTop(0).referenceValue(); markComplexEnumType(referenceValue); }
public String toString() { StringBuffer buffer = new StringBuffer(); for (int index = 0; index < this.size(); index++) { Value value = this.values[index]; Value producerValue = producerStack.getBottom(index); Value actualProducerValue = actualProducerStack.getBottom(index); buffer = buffer.append('[') .append(producerValue == null ? "empty:" : producerValue.equals(actualProducerValue) ? producerValue.toString() : producerValue.toString() + actualProducerValue.toString()) .append(value == null ? "empty" : value.toString()) .append(']'); } return buffer.toString(); }
public void pop2() { super.pop2(); producerPop(); producerPop(); }