From 0c5c74c373058c2b1046ead06a40b9bd837c6969 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 25 Sep 2017 15:17:30 -0700 Subject: [PATCH] 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 --- src/python/m5/params.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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): -- 2.30.2