From: Gabe Black Date: Mon, 25 Sep 2017 22:17:30 +0000 (-0700) Subject: sim: Only consider non-NULL elements in SimObjectVector.has_parent. X-Git-Tag: v19.0.0.0~2626 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0c5c74c373058c2b1046ead06a40b9bd837c6969;p=gem5.git 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 Maintainer: Gabe Black --- 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):