loop do
ii = (lo + hi) / 2
range = @ranges[ii]
- if range.include?(target) && (target < range.end || ii == hi)
+ if range.include?(target) && (target < range.end || ii == hi-1)
return ii
elsif ii == lo
raise RangeError.new("%i not in segment" % target)
end
segment_start = @loc_range_start
- segment_end = segment_start
segment.locators.each do |loc_s|
r = LocatorRange.new(loc_s, @loc_range_start)
@loc_ranges << r
@loc_range_start = r.end
- segment_end += (r.end - r.begin)
end
@file_specs << "#{segment.start_pos + segment_start}:#{segment.length}:#{escape_name(filename)}"
end