this.methodCountOffset = this.contentsOffset;
this.contentsOffset += 2;
}
public void traverse(MethodBinding methodBinding, int maxLocals, byte[] bytecodes, int codeOffset, int codeLength, ArrayList frames, boolean isClinit) {
StackMapFrameCodeStream stackMapFrameCodeStream = (StackMapFrameCodeStream) this.codeStream;
int[] framePositions = stackMapFrameCodeStream.getFramePositions();
int pc = codeOffset;
int index;
int[] constantPoolOffsets = this.constantPool.offsets;
byte[] poolContents = this.constantPool.poolContent;
// set initial values for frame positions
int indexInFramePositions = 0;
int framePositionsLength = framePositions.length;
int currentFramePosition = framePositions[0];
// set initial values for stack depth markers
int indexInStackDepthMarkers = 0;
StackDepthMarker[] stackDepthMarkers = stackMapFrameCodeStream.getStackDepthMarkers();
int stackDepthMarkersLength = stackDepthMarkers == null ? 0 : stackDepthMarkers.length;
boolean hasStackDepthMarkers = stackDepthMarkersLength != 0;
StackDepthMarker stackDepthMarker = null;
if (hasStackDepthMarkers) {
stackDepthMarker = stackDepthMarkers[0];
}
// set initial values for stack markers (used only in cldc mode)
int indexInStackMarkers = 0;
StackMarker[] stackMarkers = stackMapFrameCodeStream.getStackMarkers();
int stackMarkersLength = stackMarkers == null ? 0 : stackMarkers.length;
boolean hasStackMarkers = stackMarkersLength != 0;
StackMarker stackMarker = null;
if (hasStackMarkers) {
stackMarker = stackMarkers[0];
}
// set initial values for exception markers
int indexInExceptionMarkers = 0;
ExceptionMarker[] exceptionMarkers= stackMapFrameCodeStream.getExceptionMarkers();
int exceptionsMarkersLength = exceptionMarkers == null ? 0 : exceptionMarkers.length;
boolean hasExceptionMarkers = exceptionsMarkersLength != 0;
ExceptionMarker exceptionMarker = null;
if (hasExceptionMarkers) {
exceptionMarker = exceptionMarkers[0];