void IntersectWithUnavailable(MediaByteRange& range, URL& url) { if (range.IsEmpty()) return; // find the first unavailable range on or after range.start MediaByteRange unavail; BOOL available = FALSE; OpFileLength length = 0; url.GetPartialCoverage(range.start, available, length, TRUE); if (available) { OP_ASSERT(length > 0); unavail.start = range.start + length; length = 0; url.GetPartialCoverage(unavail.start, available, length, TRUE); OP_ASSERT(!available); } else unavail.start = range.start; // length is now the number of unavailable bytes, or 0 if unknown if (length > 0) unavail.SetLength(length); range.IntersectWith(unavail); }