misc: Use AddrRangeList more consistently in the AddrRange class.
We go through the trouble of defining an AddrRangeList typedef, but then we don't use it consistently and use std::vector<AddrRange> instead. This change converts the exclude method from using std::vector<AddrRange> to AddrRangeList, and also adds a constructor which takes an AddrRangeList. Because there is a lot of code which uses the std::vector based constructor, this change does not remove that method. Change-Id: I1a03b25990025688aa760a67d3e7a2e8141384ce Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/50344 Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Maintainer: Daniel Carvalho <odanrc@yahoo.com.br> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -728,7 +728,6 @@ class MetaSimObject(type):
|
||||
|
||||
#include "base/compiler.hh"
|
||||
#include "params/$cls.hh"
|
||||
#include "python/pybind11/core.hh"
|
||||
#include "sim/init.hh"
|
||||
#include "sim/sim_object.hh"
|
||||
|
||||
|
||||
@@ -865,15 +865,10 @@ class AddrRange(ParamValue):
|
||||
self.masks, int(self.intlvMatch))
|
||||
|
||||
def exclude(self, ranges):
|
||||
from _m5.range import AddrRangeVector
|
||||
|
||||
# The wrapped C++ class is assuming an AddrRangeVector
|
||||
# We are therefore converting to it before excluding ranges
|
||||
# and reconverting it into a list of AddrRange before returning
|
||||
pybind_exclude = AddrRangeVector([ r.getValue() for r in ranges ])
|
||||
pybind_exclude = list([ r.getValue() for r in ranges ])
|
||||
pybind_include = self.getValue().exclude(pybind_exclude)
|
||||
|
||||
return [ AddrRange(r.start(), r.end()) for r in pybind_include ]
|
||||
return list([ AddrRange(r.start(), r.end()) for r in pybind_include ])
|
||||
|
||||
# Boolean parameter type. Python doesn't let you subclass bool, since
|
||||
# it doesn't want to let you create multiple instances of True and
|
||||
|
||||
Reference in New Issue
Block a user