From f844e10c2992fa68f2eb9a3636c51c0cea77d2ca Mon Sep 17 00:00:00 2001
From: Jean-Baptiste Keck <Jean-Baptiste.Keck@imag.fr>
Date: Fri, 29 Sep 2017 16:29:23 +0200
Subject: [PATCH] Fixed 1D enum array code generation, closes #4

---
 hysop/tools/enum.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/hysop/tools/enum.py b/hysop/tools/enum.py
index c8b16b1a9..ece07b748 100644
--- a/hysop/tools/enum.py
+++ b/hysop/tools/enum.py
@@ -172,15 +172,19 @@ class EnumFactory(object):
             return CodegenVariable(name=name,typegen=typegen,ctype=dtype_to_ctype(cls.dtype),
                     value=value,svalue=svalue,**kwds)
         def __array_variable(cls,name,typegen,vals,**kwds):
-            from hysop.backend.device.codegen.base.variables import CodegenArray, \
-                    dtype_to_ctype
+            from hysop.backend.device.codegen.base.variables import dtype_to_ctype, \
+                    CodegenVariable, CodegenArray
             assert vals is not None
             size = len(vals)
             value  = [getattr(cls,cls.svalue(v)) if isinstance(v, (int,long)) 
                     else v for v in vals]
             svalue = [cls.svalue(v) if isinstance(v, (int,long)) else str(v) for v in vals]
-            return CodegenArray(name=name,typegen=typegen,ctype=dtype_to_ctype(cls.dtype),
-                    value=value,svalue=svalue,dim=1,**kwds)
+            if len(vals)==1:
+                return CodegenVariable(name=name,typegen=typegen,ctype=dtype_to_ctype(cls.dtype),
+                        value=value[0],svalue=svalue[0],**kwds)
+            else:
+                return CodegenArray(name=name,typegen=typegen,ctype=dtype_to_ctype(cls.dtype),
+                        value=value,svalue=svalue,dim=1,**kwds)
 
         mcls_dic = {'name':name,
                     'dtype':dtype, 
-- 
GitLab