sim: Check the SimObjectVector.has_parent function to use the "any" function.
authorGabe Black <gabeblack@google.com>
Mon, 25 Sep 2017 22:24:00 +0000 (15:24 -0700)
committerGabe Black <gabeblack@google.com>
Tue, 26 Sep 2017 21:16:54 +0000 (21:16 +0000)
The existing code was essentially doing the same thing, but in a more
roundabout and obscure way. One difference between the two versions is that
I believe this will stop as soon as it encounters an element without a
parent, where the original version would call has_parent() on all the
elements regardless.

Change-Id: Ia1fef3083fc88fca11f8ecfca453476e33194695
Reviewed-on: https://gem5-review.googlesource.com/4842
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Gabe Black <gabeblack@google.com>

src/python/m5/params.py

index e5f47e6946b8372a93828e88cbaa87f646482e6d..7a28e63c7952fce52d47ade4757d3b4dc0553d74 100644 (file)
@@ -270,8 +270,7 @@ class SimObjectVector(VectorParamValue):
                 v.set_parent(parent, "%s%0*d" % (name, width, i))
 
     def has_parent(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 any([e.has_parent() for e in self if not isNullPointer(e)])
 
     # return 'cpu0 cpu1' etc. for print_ini()
     def get_name(self):