blob: d405cf0fa3ec3539fa3821ae6d9a66b9943be6a0 [file] [log] [blame]
//===-- AddressRangeListImpl.cpp ------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#include "lldb/Core/AddressRangeListImpl.h"
using namespace lldb;
using namespace lldb_private;
AddressRangeListImpl::AddressRangeListImpl() : m_ranges() {}
AddressRangeListImpl &
AddressRangeListImpl::operator=(const AddressRangeListImpl &rhs) {
if (this == &rhs)
return *this;
m_ranges = rhs.m_ranges;
return *this;
}
size_t AddressRangeListImpl::GetSize() const { return m_ranges.size(); }
void AddressRangeListImpl::Reserve(size_t capacity) {
m_ranges.reserve(capacity);
}
void AddressRangeListImpl::Append(const AddressRange &sb_region) {
m_ranges.emplace_back(sb_region);
}
void AddressRangeListImpl::Append(const AddressRangeListImpl &list) {
Reserve(GetSize() + list.GetSize());
for (const auto &range : list.m_ranges)
Append(range);
}
void AddressRangeListImpl::Clear() { m_ranges.clear(); }
lldb_private::AddressRange
AddressRangeListImpl::GetAddressRangeAtIndex(size_t index) {
if (index >= GetSize())
return AddressRange();
return m_ranges[index];
}
AddressRanges &AddressRangeListImpl::ref() { return m_ranges; }