base: Simplify the AddrRangeMap by removing unused code

This patch cleans up the AddrRangeMap in preparation for the addition
of interleaving by removing unused code. The non-const editions of
find are never used, and hence the duplication is not needed.
This commit is contained in:
Andreas Hansson 2013-01-07 13:05:38 -05:00
parent e65de3f5ca
commit e0d93fde99
2 changed files with 8 additions and 45 deletions

View file

@ -68,32 +68,10 @@ class AddrRangeMap
const_iterator
find(const AddrRange &r) const
{
const_iterator i;
if (tree.empty())
return tree.end();
i = tree.upper_bound(r);
if (i == tree.begin()) {
if (i->first.intersects(r))
return i;
else
// Nothing could match, so return end()
return tree.end();
}
--i;
if (i->first.intersects(r))
return i;
return tree.end();
}
iterator
find(const AddrRange &r)
{
iterator i;
i = tree.upper_bound(r);
const_iterator i = tree.upper_bound(r);
if (i == tree.begin()) {
if (i->first.intersects(r))
@ -117,23 +95,13 @@ class AddrRangeMap
return find(RangeSize(r, 1));
}
iterator
find(const Addr &r)
{
return find(RangeSize(r, 1));
}
bool
intersect(const AddrRange &r)
intersect(const AddrRange &r) const
{
iterator i;
i = find(r);
if (i != tree.end())
return true;
return false;
return find(r) != tree.end();
}
iterator
const_iterator
insert(const AddrRange &r, const V& d)
{
if (intersect(r))
@ -142,12 +110,6 @@ class AddrRangeMap
return tree.insert(std::make_pair(r, d)).first;
}
std::size_t
erase(Addr k)
{
return tree.erase(k);
}
void
erase(iterator p)
{

View file

@ -325,7 +325,8 @@ PhysicalMemory::unserialize(Checkpoint* cp, const string& section)
arrayParamIn(cp, section, "lal_addr", lal_addr);
arrayParamIn(cp, section, "lal_cid", lal_cid);
for(size_t i = 0; i < lal_addr.size(); ++i) {
AddrRangeMap<AbstractMemory*>::iterator m = addrMap.find(lal_addr[i]);
AddrRangeMap<AbstractMemory*>::const_iterator m =
addrMap.find(lal_addr[i]);
m->second->addLockedAddr(LockedAddr(lal_addr[i], lal_cid[i]));
}