python: Fix weird memory issue in wrapped AddrRange vectors
authorAndreas Sandberg <andreas.sandberg@arm.com>
Wed, 10 May 2017 12:16:43 +0000 (13:16 +0100)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Mon, 22 May 2017 17:14:34 +0000 (17:14 +0000)
commit2da0ab06b720e5b22fb3a81585ef9eecc752a99f
treea0a7eea8b3739419fbc8bb20c6784fc8fb62eb26
parente897c52f81326ce0126f68a8c91bca56e6b49c11
python: Fix weird memory issue in wrapped AddrRange vectors

There is a weird issue with the PyBind wrapper of
vector<AddrRange>. Assigning new values to a param that is a vector of
AddrRange sometimes results in an out-of-bounds memory access.

We work around this issue by treating AddrRange vectors as opaque
types. This slightly changes the semantics of the wrapper since Python
now manipulates the real object rather than a copy that has been
converted to a list.

Change-Id: Ie027c06e7a7262214b43b19a76b24fe4b20426c5
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Sascha Bischoff <sascha.bischoff@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-by: Timothy Hayes <timothy.hayes@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/3223
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
src/python/m5/SimObject.py
src/python/pybind11/core.cc
src/python/pybind11/core.hh [new file with mode: 0644]