summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gabeblack@google.com>2017-09-25 15:17:30 -0700
committerGabe Black <gabeblack@google.com>2017-09-26 21:16:35 +0000
commit0c5c74c373058c2b1046ead06a40b9bd837c6969 (patch)
tree18195fbe5a7f0bfd51174adecec423212ea4e8ca
parent9015069ea0c82221bd4665a5bdf9a9b46a7fd904 (diff)
downloadgem5-0c5c74c373058c2b1046ead06a40b9bd837c6969.tar.xz
sim: Only consider non-NULL elements in SimObjectVector.has_parent.
NullSimObject doesn't have a has_parent function, and it's not clear what its return value should be if one were added. The appropriate value seems to depend on why some other bit of code is checking if there's a parent in the first place. In SimObjectVector, the has_parent function is checking whether all of its elements have a parent. In this particular case, the most reasonable thing to do seems to be to just skip those elements. Change-Id: I5f8cad66d1b22c5e37962492fd77cff9371e5af8 Reviewed-on: https://gem5-review.googlesource.com/4841 Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Gabe Black <gabeblack@google.com>
-rw-r--r--src/python/m5/params.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/python/m5/params.py b/src/python/m5/params.py
index b49f811d1..e5f47e694 100644
--- a/src/python/m5/params.py
+++ b/src/python/m5/params.py
@@ -270,7 +270,8 @@ class SimObjectVector(VectorParamValue):
v.set_parent(parent, "%s%0*d" % (name, width, i))
def has_parent(self):
- return reduce(lambda x,y: x and y, [v.has_parent() for v in self])
+ elements = [e for e in self if not isNullPointer(e)]
+ return reduce(lambda x,y: x and y, [v.has_parent() for v in elements])
# return 'cpu0 cpu1' etc. for print_ini()
def get_name(self):