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:
Gabe Black
2021-09-13 20:20:29 -07:00
parent ef2aaf995d
commit 416939c5c2
6 changed files with 90 additions and 135 deletions

View File

@@ -39,11 +39,10 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "pybind11/operators.h"
#include "pybind11/pybind11.h"
#include "pybind11/stl.h"
#include "python/pybind11/core.hh"
#include <ctime>
#include "base/addr_range.hh"
@@ -158,10 +157,6 @@ init_range(py::module_ &m_native)
.def("exclude", &AddrRange::exclude)
;
// We need to make vectors of AddrRange opaque to avoid weird
// memory allocation issues in PyBind's STL wrappers.
py::bind_vector<std::vector<AddrRange>>(m, "AddrRangeVector");
m.def("RangeEx", &RangeEx);
m.def("RangeIn", &RangeIn);
m.def("RangeSize", &RangeSize);