private long findAfter ( long offset ) { if ( size == 0 ) { return - 1 ; } int low = 0 ; int high = size - 1 ; while ( low <= high ) { int mid = low + ( ( high - low ) / 2 ) ; long i = buffer . readLong ( mid * ENTRY_SIZE ) ; if ( i < offset ) { low = mid + 1 ; } else if ( i > offset ) { high = mid - 1 ; } else { return mid ; } } return ( low < high ) ? low + 1 : high + 1 ; }
Returns the real offset for the given relative offset .