1 //===-- AddressRangeListImpl.cpp ------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 #include "lldb/Core/AddressRangeListImpl.h" 10 11 using namespace lldb; 12 using namespace lldb_private; 13 AddressRangeListImpl()14AddressRangeListImpl::AddressRangeListImpl() : m_ranges() {} 15 GetSize() const16size_t AddressRangeListImpl::GetSize() const { return m_ranges.size(); } 17 Reserve(size_t capacity)18void AddressRangeListImpl::Reserve(size_t capacity) { 19 m_ranges.reserve(capacity); 20 } 21 Append(const AddressRange & sb_region)22void AddressRangeListImpl::Append(const AddressRange &sb_region) { 23 m_ranges.emplace_back(sb_region); 24 } 25 Append(const AddressRangeListImpl & list)26void AddressRangeListImpl::Append(const AddressRangeListImpl &list) { 27 Reserve(GetSize() + list.GetSize()); 28 29 for (const auto &range : list.m_ranges) 30 Append(range); 31 } 32 Clear()33void AddressRangeListImpl::Clear() { m_ranges.clear(); } 34 35 lldb_private::AddressRange GetAddressRangeAtIndex(size_t index)36AddressRangeListImpl::GetAddressRangeAtIndex(size_t index) { 37 if (index >= GetSize()) 38 return AddressRange(); 39 return m_ranges[index]; 40 } 41 ref()42AddressRanges &AddressRangeListImpl::ref() { return m_ranges; } 43