int (int line) { if (line < myPrefixLineCount) { synchronized (myLock) { Segment hostRangeMarker = myShreds.get(0).getHostRangeMarker(); return hostRangeMarker == null ? 0 : myDelegate.getLineNumber(hostRangeMarker.getStartOffset()); } } int lineCount = getLineCount(); if (line > lineCount - mySuffixLineCount) { return lineCount; } int offset = getLineStartOffset(line); int hostOffset = injectedToHost(offset); return myDelegate.getLineNumber(hostOffset); }