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.
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user