diff options
author | Steve Reinhardt <stever@eecs.umich.edu> | 2006-12-02 22:24:52 -0800 |
---|---|---|
committer | Steve Reinhardt <stever@eecs.umich.edu> | 2006-12-02 22:24:52 -0800 |
commit | e6d7e8af2169ae77fe211c0e5141ebbc818acda5 (patch) | |
tree | 06f34e03116776a110bf69762a8454ae60bf2ee4 /src | |
parent | 4c0014a1871292ba2a78e131dcff3c96a4b70225 (diff) | |
download | gem5-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.py | 11 |
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 |