public void back(int delta) {if (delta == 1 && 0 <= prevPtr) {currPtr = prevPtr;prevPtr = -1;if (!eof())parseEntry();return;} else if (delta <= 0)throw new ArrayIndexOutOfBoundsException(delta);final int[] trace = new int[delta + 1];Arrays.fill(trace, -1);int ptr = 0;while (ptr != currPtr) {System.arraycopy(trace, 1, trace, 0, delta);trace[delta] = ptr;while (raw[ptr] != 0)ptr++;ptr += OBJECT_ID_LENGTH + 1;}if (trace[1] == -1)throw new ArrayIndexOutOfBoundsException(delta);prevPtr = trace[0];currPtr = trace[1];parseEntry();}

public void back ( int delta ) { if ( delta == 1 && 0 <= prevPtr ) { currPtr = prevPtr ; prevPtr = - 1 ; if ( ! eof ( ) ) parseEntry ( ) ; return ; } else if ( delta <= 0 ) throw new ArrayIndexOutOfBoundsException ( delta ) ; final int [ ] trace = new int [ delta + 1 ] ; Arrays . fill ( trace , - 1 ) ; int ptr = 0 ; while ( ptr != currPtr ) { System . arraycopy ( trace , 1 , trace , 0 , delta ) ; trace [ delta ] = ptr ; while ( raw [ ptr ] != 0 ) ptr ++ ; ptr += OBJECT_ID_LENGTH + 1 ; } if ( trace [ 1 ] == - 1 ) throw new ArrayIndexOutOfBoundsException ( delta ) ; prevPtr = trace [ 0 ] ; currPtr = trace [ 1 ] ; parseEntry ( ) ; }
public override void Back(int delta){if (delta == 1 && 0 <= prevPtr){currPtr = prevPtr;prevPtr = -1;if (!Eof){ParseEntry();}return;}else{if (delta <= 0){throw Sharpen.Extensions.CreateIndexOutOfRangeException(delta);}}int[] trace = new int[delta + 1];Arrays.Fill(trace, -1);int ptr = 0;while (ptr != currPtr){System.Array.Copy(trace, 1, trace, 0, delta);trace[delta] = ptr;while (raw[ptr] != 0){ptr++;}ptr += Constants.OBJECT_ID_LENGTH + 1;}if (trace[1] == -1){throw Sharpen.Extensions.CreateIndexOutOfRangeException(delta);}prevPtr = trace[0];currPtr = trace[1];ParseEntry();}
