Params: Fix check for cycles in the configuration and clarify the comments/error message.

--HG--
extra : convert_revision : 8f35dde408fae874bcba1a248d32a22222d98c35
This commit is contained in:
Gabe Black 2007-11-12 18:06:02 -08:00
parent 917ae9ec66
commit 6095dceb0c

View file

@ -793,12 +793,14 @@ class SimObject(object):
# necessary to construct it. Does *not* recursively create
# children.
def getCCObject(self):
params = self.getCCParams()
if not self._ccObject:
self._ccObject = -1 # flag to catch cycles in recursion
# Cycles in the configuration heirarchy are not supported. This
# will catch the resulting recursion and stop.
self._ccObject = -1
params = self.getCCParams()
self._ccObject = params.create()
elif self._ccObject == -1:
raise RuntimeError, "%s: recursive call to getCCObject()" \
raise RuntimeError, "%s: Cycle found in configuration heirarchy." \
% self.path()
return self._ccObject