summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2006-12-02 22:24:52 -0800
committerSteve Reinhardt <stever@eecs.umich.edu>2006-12-02 22:24:52 -0800
commite6d7e8af2169ae77fe211c0e5141ebbc818acda5 (patch)
tree06f34e03116776a110bf69762a8454ae60bf2ee4 /src
parent4c0014a1871292ba2a78e131dcff3c96a4b70225 (diff)
downloadgem5-e6d7e8af2169ae77fe211c0e5141ebbc818acda5.tar.xz
Support better param conversions to/from numeric subclasses.
--HG-- extra : convert_revision : 2ccb75b0912a384789458710fd9bbb65626f839e
Diffstat (limited to 'src')
-rw-r--r--src/python/m5/params.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/python/m5/params.py b/src/python/m5/params.py
index 9e5f985c3..d83d5f73f 100644
--- a/src/python/m5/params.py
+++ b/src/python/m5/params.py
@@ -237,6 +237,12 @@ class NumericParamValue(ParamValue):
def __float__(self):
return float(self.value)
+ def __long__(self):
+ return long(self.value)
+
+ def __int__(self):
+ return int(self.value)
+
# hook for bounds checking
def _check(self):
return
@@ -308,8 +314,11 @@ class CheckedInt(NumericParamValue):
def __init__(self, value):
if isinstance(value, str):
self.value = convert.toInteger(value)
- elif isinstance(value, (int, long, float)):
+ elif isinstance(value, (int, long, float, NumericParamValue)):
self.value = long(value)
+ else:
+ raise TypeError, "Can't convert object of type %s to CheckedInt" \
+ % type(value).__name__
self._check()
class Int(CheckedInt): cxx_type = 'int'; size = 32; unsigned = False