eolian: fix setter generation for @auto functions
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Fri, 13 Oct 2017 21:48:34 +0000 (23:48 +0200)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Fri, 13 Oct 2017 21:49:57 +0000 (23:49 +0200)
Because of a typo in generator source (and overlooked error in
tests) we were previously generating incorrect code for setters
with the @auto qualifier. This was brought up in D5306 and is
now fixed.

src/bin/eolian/sources.c
src/tests/eolian/data/override_ref.c

index c8d71d4..473342a 100644 (file)
@@ -441,7 +441,7 @@ _gen_func(const Eolian_Unit *src, const Eolian_Class *cl,
              if (is_auto)
                {
                   if (ftype == EOLIAN_PROP_SET)
-                    eina_strbuf_append_printf(params_init, "   %s = pd->%s;\n", prn, prn);
+                    eina_strbuf_append_printf(params_init, "   pd->%s = %s;\n", prn, prn);
                   else
                     {
                        eina_strbuf_append_printf(params_init, "   if (%s) *%s = pd->%s;\n",
index 967914a..95ee937 100644 (file)
@@ -6,9 +6,9 @@ EOAPI EFL_VOID_FUNC_BODY_CONST(override_a_get);
 
 static void __eolian_override_b_set(Eo *obj EINA_UNUSED, Override_Data *pd, int idx EINA_UNUSED, float a, char b, int c)
 {
-   a = pd->a;
-   b = pd->b;
-   c = pd->c;
+   pd->a = a;
+   pd->b = b;
+   pd->c = c;
 }
 
 EOAPI EFL_VOID_FUNC_BODYV(override_b_set, EFL_FUNC_CALL(idx, a, b, c), int idx, float a, char b, int c);
@@ -42,9 +42,9 @@ void _override_base_constructor(Eo *obj, Override_Data *pd);
 
 static void __eolian_override_base_z_set(Eo *obj EINA_UNUSED, Override_Data *pd, int a, char b, float c)
 {
-   a = pd->a;
-   b = pd->b;
-   c = pd->c;
+   pd->a = a;
+   pd->b = b;
+   pd->c = c;
 }