config: Fix vectorparam command line parsing
authorGeoffrey Blake <Geoffrey.Blake@arm.com>
Tue, 9 Sep 2014 08:36:34 +0000 (04:36 -0400)
committerGeoffrey Blake <Geoffrey.Blake@arm.com>
Tue, 9 Sep 2014 08:36:34 +0000 (04:36 -0400)
Parsing vectorparams from the command was slightly broken
in that it wouldn't accept the input that the help message
provided to the user and it didn't do the conversion
on the second code path used to convert the string input
to the actual internal representation.  This patch fixes these bugs.

src/python/m5/params.py

index 1f9a41d9e0209c780e2cdb9af048873940921d58..db10a818f4ad297d7e729ce70cfcb0d5586e5b23 100644 (file)
@@ -311,6 +311,10 @@ class VectorParamDesc(ParamDesc):
         if isinstance(value, (list, tuple)):
             # list: coerce each element into new list
             tmp_list = [ ParamDesc.convert(self, v) for v in value ]
+        elif isinstance(value, str):
+            # If input is a csv string
+            tmp_list = [ ParamDesc.convert(self, v) \
+                         for v in value.strip('[').strip(']').split(',') ]
         else:
             # singleton: coerce to a single-element list
             tmp_list = [ ParamDesc.convert(self, value) ]
@@ -346,7 +350,8 @@ class VectorParamDesc(ParamDesc):
             tmp_list = [ ParamDesc.convert(self, v) for v in value ]
         elif isinstance(value, str):
             # If input is a csv string
-            tmp_list = [ ParamDesc.convert(self, v) for v in value.split(',') ]
+            tmp_list = [ ParamDesc.convert(self, v) \
+                         for v in value.strip('[').strip(']').split(',') ]
         else:
             # singleton: coerce to a single-element list
             tmp_list = [ ParamDesc.convert(self, value) ]