From ba9ec669bcf68e4d4e3322f07e5f51af19f05b4a Mon Sep 17 00:00:00 2001 From: Steve Reinhardt Date: Fri, 3 Jan 2014 17:08:42 -0800 Subject: [PATCH] python: don't die on assignment to cloned object Updating the SimObject topology of a cloned hierarchy is a little dangerous, in that cloning is a "deep copy" and the clone does not inherit SimObject updates the same way it would inherit scalar variable assignments. However, because of various SimObject-valued proxy parameters, like 'memories', 'clk_domain', and 'system', it turns out that there are a number of implicit topology changes that happen at instantiation, which means that these changes are impossible to avoid. So in order to make cloning systems useful, this error has to go. Changing it to a warning produces a lot of noise, so it seems best just to delete it. --- src/python/m5/SimObject.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py index 9b60dfef6..013f609d6 100644 --- a/src/python/m5/SimObject.py +++ b/src/python/m5/SimObject.py @@ -740,11 +740,6 @@ class SimObject(object): self._get_port_ref(attr).connect(value) return - if isSimObjectOrSequence(value) and self._instantiated: - raise RuntimeError, \ - "cannot set SimObject parameter '%s' after\n" \ - " instance been cloned %s" % (attr, `self`) - param = self._params.get(attr) if param: try: -- 2.30.2