From: Steve Reinhardt Date: Sat, 17 Jul 2010 15:56:49 +0000 (-0700) Subject: SimObject: transparently forward Python attribute refs to C++. X-Git-Tag: stable_2012_02_02~993 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=262b2e2b942f15384393b421ece5bb9a2ac48ee1;p=gem5.git SimObject: transparently forward Python attribute refs to C++. This tidbit was pulled from a larger patch for Tim's sake, so the comment reflects functions that haven't been exported yet. I hope to commit them soon so it didn't seem worth cleaning up. --- diff --git a/src/python/m5/SimObject.py b/src/python/m5/SimObject.py index e6f0e36b2..3b84d6000 100644 --- a/src/python/m5/SimObject.py +++ b/src/python/m5/SimObject.py @@ -527,6 +527,13 @@ class SimObject(object): if self._values.has_key(attr): return self._values[attr] + # If the attribute exists on the C++ object, transparently + # forward the reference there. This is typically used for + # SWIG-wrapped methods such as init(), regStats(), + # regFormulas(), resetStats(), and startup(). + if self._ccObject and hasattr(self._ccObject, attr): + return getattr(self._ccObject, attr) + raise AttributeError, "object '%s' has no attribute '%s'" \ % (self.__class__.__name__, attr)