sim: clean up child handling
authorSteve Reinhardt <steve.reinhardt@amd.com>
Tue, 17 Aug 2010 12:11:00 +0000 (05:11 -0700)
committerSteve Reinhardt <steve.reinhardt@amd.com>
Tue, 17 Aug 2010 12:11:00 +0000 (05:11 -0700)
commitc2e1458746278b761917f62eb890eefbf4bbc938
tree1600ed2d0e625c6de5f28ea59931a3c5007add39
parent5ea906ba1625266ee80968d70e0c218adedcce9f
sim: clean up child handling
The old code for handling SimObject children was kind of messy,
with children stored both in _values and _children, and
inconsistent and potentially buggy handling of SimObject
vectors.  Now children are always stored in _children, and
SimObject vectors are consistently handled using the
SimObjectVector class.

Also, by deferring the parenting of SimObject-valued parameters
until the end (instead of doing it at assignment), we eliminate
the hole where one could assign a vector of SimObjects to a
parameter then append to that vector, with the appended objects
never getting parented properly.

This patch induces small stats changes in tests with data races
due to changes in the object creation & initialization order.
The new code does object vectors in order and so should be more
stable.
src/python/m5/SimObject.py
src/python/m5/params.py
src/python/m5/simulate.py