SimObject: allow modules in subclass definitions
authorSteve Reinhardt <steve.reinhardt@amd.com>
Thu, 2 Jun 2011 04:43:13 +0000 (21:43 -0700)
committerSteve Reinhardt <steve.reinhardt@amd.com>
Thu, 2 Jun 2011 04:43:13 +0000 (21:43 -0700)
In particular, this avoids crashing when you do
an import (like "import pdb") inside a SimObject
subclass definition.

src/python/m5/SimObject.py

index a143958f02bf6cac6256083b2a801ce5f29c2053..c18d6900c9c9f83c380ba68c84763d7aa04bb5d0 100644 (file)
@@ -29,7 +29,7 @@
 #          Nathan Binkert
 
 import sys
-from types import FunctionType, MethodType
+from types import FunctionType, MethodType, ModuleType
 
 try:
     import pydot
@@ -130,7 +130,8 @@ def default_swig_objdecls(cls, code):
 
 def public_value(key, value):
     return key.startswith('_') or \
-               isinstance(value, (FunctionType, MethodType, classmethod, type))
+               isinstance(value, (FunctionType, MethodType, ModuleType,
+                                  classmethod, type))
 
 # The metaclass for SimObject.  This class controls how new classes
 # that derive from SimObject are instantiated, and provides inherited