|
|
@ -497,6 +497,9 @@ private: |
|
|
if (ranges.empty()) return; |
|
|
if (ranges.empty()) return; |
|
|
std::sort(ranges.begin(), ranges.end(), |
|
|
std::sort(ranges.begin(), ranges.end(), |
|
|
[](const auto& a, const auto& b) { return a.first < b.first; }); |
|
|
[](const auto& a, const auto& b) { return a.first < b.first; }); |
|
|
|
|
|
// Coalesce adjacent/contiguous ranges |
|
|
|
|
|
std::vector<std::pair<VAddr, u64>> coalesced; |
|
|
|
|
|
coalesced.reserve(ranges.size()); |
|
|
VAddr cur_addr = ranges[0].first; |
|
|
VAddr cur_addr = ranges[0].first; |
|
|
u64 cur_size = ranges[0].second; |
|
|
u64 cur_size = ranges[0].second; |
|
|
for (size_t i = 1; i < ranges.size(); ++i) { |
|
|
for (size_t i = 1; i < ranges.size(); ++i) { |
|
|
|