From: Rico Tzschichholz Date: Sun, 21 Jun 2015 10:23:02 +0000 (+0200) Subject: codegen: fix generating struct equal function X-Git-Tag: 0.28.1~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a0b49358b4a1e1c38c915c3fbbfb2be79a24be2;p=thirdparty%2Fvala.git codegen: fix generating struct equal function Fixes bug 749952 --- diff --git a/codegen/valaccodebasemodule.vala b/codegen/valaccodebasemodule.vala index e1c6a6357..78e52dc07 100644 --- a/codegen/valaccodebasemodule.vala +++ b/codegen/valaccodebasemodule.vala @@ -2736,6 +2736,10 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { } private string generate_struct_equal_function (Struct st) { + if (st.base_struct != null) { + return generate_struct_equal_function (st.base_struct); + } + string equal_func = "_%sequal".printf (get_ccode_lower_case_prefix (st)); if (!add_wrapper (equal_func)) { @@ -2743,10 +2747,6 @@ public abstract class Vala.CCodeBaseModule : CodeGenerator { return equal_func; } - if (st.base_struct != null) { - return generate_struct_equal_function (st.base_struct); - } - var function = new CCodeFunction (equal_func, "gboolean"); function.modifiers = CCodeModifiers.STATIC; diff --git a/tests/Makefile.am b/tests/Makefile.am index 32026c8b8..343da516e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -112,6 +112,7 @@ TESTS = \ structs/bug685177.vala \ structs/bug686190.vala \ structs/bug690380.vala \ + structs/bug749952.vala \ delegates/delegates.vala \ delegates/bug539166.vala \ delegates/bug595610.vala \ diff --git a/tests/structs/bug749952.vala b/tests/structs/bug749952.vala new file mode 100644 index 000000000..212edc59a --- /dev/null +++ b/tests/structs/bug749952.vala @@ -0,0 +1,14 @@ +struct Foo { + int i; +} + +struct Bar : Foo { +} + +void main () { + Bar b1 = {}; + Bar b2 = {}; + + assert (b1 == b2); + assert (b2 == b1); +}