/** * Returns the combined liveness mask of the variables right before the * specified instruction offsets. */ private long combinedLiveness(InstructionOffsetValue instructionOffsetValue) { long alive = 0L; int count = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < count; index++) { alive |= isAliveBefore[instructionOffsetValue.instructionOffset(index)]; } return alive; }
/** * Returns whether the given creation offset is initialized before the given * offset. */ public boolean isInitializedBefore(int offset, InstructionOffsetValue creationOffsetValue) { return !uninitializedOffsets[offset].contains(creationOffsetValue.instructionOffset(0)); }
/** * Returns the combined liveness mask of the variables right before the * specified instruction offsets. */ private long combinedLiveness(InstructionOffsetValue instructionOffsetValue) { long alive = 0L; int count = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < count; index++) { alive |= isAliveBefore[instructionOffsetValue.instructionOffset(index)]; } return alive; } }
/** * Returns the 'new' instruction offset at which the object instance is * created that is initialized at the given offset. */ public int creationOffset(int initializationOffset) { return creationOffsetValue(initializationOffset).instructionOffset(0); }
/** * Returns the combined liveness mask of the variables right before the * specified instruction offsets. */ private long combinedLiveness(InstructionOffsetValue instructionOffsetValue) { long alive = 0L; int count = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < count; index++) { alive |= isAliveBefore[instructionOffsetValue.instructionOffset(index)]; } return alive; } }
/** * Returns whether the given creation offset is initialized before the given * offset. */ public boolean isInitializedBefore(int offset, InstructionOffsetValue creationOffsetValue) { return !uninitializedOffsets[offset].contains(creationOffsetValue.instructionOffset(0)); }
/** * Returns the combined liveness mask of the variables right before the * specified instruction offsets. */ private long combinedLiveness(InstructionOffsetValue instructionOffsetValue) { long alive = 0L; int count = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < count; index++) { alive |= isAliveBefore[instructionOffsetValue.instructionOffset(index)]; } return alive; } }
/** * Returns whether the given creation offset is initialized before the given * offset. */ public boolean isInitializedBefore(int offset, InstructionOffsetValue creationOffsetValue) { return !uninitializedOffsets[offset].contains(creationOffsetValue.instructionOffset(0)); }
/** * Marks the specified instructions as used. * @param instructionOffsets the offsets of the instructions. */ private void markInstructions(InstructionOffsetValue instructionOffsets) { int count = instructionOffsets.instructionOffsetCount(); for (int index = 0; index < count; index++) { markInstruction(instructionOffsets.instructionOffset(index)); } }
/** * Returns the 'new' instruction offset at which the object instance is * created that is initialized at the given offset. */ public int creationOffset(int initializationOffset) { return creationOffsetValue(initializationOffset).instructionOffset(0); }
/** * Marks the specified instructions as used. * @param instructionOffsets the offsets of the instructions. */ private void markInstructions(InstructionOffsetValue instructionOffsets) { int count = instructionOffsets.instructionOffsetCount(); for (int index = 0; index < count; index++) { markInstruction(instructionOffsets.instructionOffset(index)); } }
/** * Returns the 'new' instruction offset at which the object instance is * created that is initialized at the given offset. */ public int creationOffset(int initializationOffset) { return creationOffsetValue(initializationOffset).instructionOffset(0); }
/** * Marks the specified instructions as used. * @param instructionOffsets the offsets of the instructions. */ private void markInstructions(InstructionOffsetValue instructionOffsets) { int count = instructionOffsets.instructionOffsetCount(); for (int index = 0; index < count; index++) { markInstruction(instructionOffsets.instructionOffset(index)); } }
private boolean isAnyStackEntryNecessaryAfter(InstructionOffsetValue instructionOffsets, int stackIndex) { int offsetCount = instructionOffsets.instructionOffsetCount(); for (int offsetIndex = 0; offsetIndex < offsetCount; offsetIndex++) { if (isStackEntryNecessaryAfter(instructionOffsets.instructionOffset(offsetIndex), stackIndex)) { return true; } } return false; }
/** * Marks the producing offsets of the given traced reference value. */ private void markEscapingReferenceValues(ReferenceValue referenceValue) { TracedReferenceValue tracedReferenceValue = (TracedReferenceValue)referenceValue; InstructionOffsetValue instructionOffsetValue = tracedReferenceValue.getTraceValue().instructionOffsetValue(); int parameterCount = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < parameterCount; index++) { if (!instructionOffsetValue.isMethodParameter(index)) { instanceEscaping[instructionOffsetValue.instructionOffset(index)] = true; } } }
/** * Marks the producing offsets of the given traced reference value. */ private void markModifiedReferenceValues(ReferenceValue referenceValue) { TracedReferenceValue tracedReferenceValue = (TracedReferenceValue)referenceValue; InstructionOffsetValue instructionOffsetValue = tracedReferenceValue.getTraceValue().instructionOffsetValue(); int parameterCount = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < parameterCount; index++) { if (!instructionOffsetValue.isMethodParameter(index)) { instanceModified[instructionOffsetValue.instructionOffset(index)] = true; } } }
/** * Marks the producing offsets of the given traced reference value. */ private void markReturnedReferenceValues(ReferenceValue referenceValue) { TracedReferenceValue tracedReferenceValue = (TracedReferenceValue)referenceValue; InstructionOffsetValue instructionOffsetValue = tracedReferenceValue.getTraceValue().instructionOffsetValue(); int parameterCount = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < parameterCount; index++) { if (!instructionOffsetValue.isMethodParameter(index)) { instanceReturned[instructionOffsetValue.instructionOffset(index)] = true; } } }
/** * Marks the producing offsets of the given traced reference value. */ private void markEscapingReferenceValues(ReferenceValue referenceValue) { TracedReferenceValue tracedReferenceValue = (TracedReferenceValue)referenceValue; InstructionOffsetValue instructionOffsetValue = tracedReferenceValue.getTraceValue().instructionOffsetValue(); int parameterCount = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < parameterCount; index++) { if (!instructionOffsetValue.isMethodParameter(index)) { instanceEscaping[instructionOffsetValue.instructionOffset(index)] = true; } } }
/** * Marks the producing offsets of the given traced reference value. */ private void markEscapingReferenceValues(ReferenceValue referenceValue) { TracedReferenceValue tracedReferenceValue = (TracedReferenceValue)referenceValue; InstructionOffsetValue instructionOffsetValue = tracedReferenceValue.getTraceValue().instructionOffsetValue(); int parameterCount = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < parameterCount; index++) { if (!instructionOffsetValue.isMethodParameter(index)) { instanceEscaping[instructionOffsetValue.instructionOffset(index)] = true; } } }
/** * Marks the producing offsets of the given traced reference value. */ private void markReturnedReferenceValues(ReferenceValue referenceValue) { TracedReferenceValue tracedReferenceValue = (TracedReferenceValue)referenceValue; InstructionOffsetValue instructionOffsetValue = tracedReferenceValue.getTraceValue().instructionOffsetValue(); int parameterCount = instructionOffsetValue.instructionOffsetCount(); for (int index = 0; index < parameterCount; index++) { if (!instructionOffsetValue.isMethodParameter(index)) { instanceReturned[instructionOffsetValue.instructionOffset(index)] = true; } } }