From: Juerg Billeter Date: Sat, 10 May 2008 21:09:10 +0000 (+0000) Subject: Fix connecting to the same dynamic signal multiple times, patch by Yu X-Git-Tag: VALA_0_3_2~28 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2612fde5bb1e16126895bc9921171be0ca2f3d78;p=thirdparty%2Fvala.git Fix connecting to the same dynamic signal multiple times, patch by Yu 2008-05-10 Juerg Billeter * gobject/valaccodedynamicsignalbinding.vala: Fix connecting to the same dynamic signal multiple times, patch by Yu Feng, fixes bug 532053 svn path=/trunk/; revision=1355 --- diff --git a/ChangeLog b/ChangeLog index edeec6f94..b86ccf588 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-05-10 Jürg Billeter + + * gobject/valaccodedynamicsignalbinding.vala: + + Fix connecting to the same dynamic signal multiple times, + patch by Yu Feng, fixes bug 532053 + 2008-05-10 Jürg Billeter * vala/valaparser.vala: diff --git a/gobject/valaccodedynamicsignalbinding.vala b/gobject/valaccodedynamicsignalbinding.vala index 3a46ff913..ae7253d4f 100644 --- a/gobject/valaccodedynamicsignalbinding.vala +++ b/gobject/valaccodedynamicsignalbinding.vala @@ -29,6 +29,8 @@ using Gee; public class Vala.CCodeDynamicSignalBinding : CCodeBinding { public Signal node { get; set; } + private static int signal_wrapper_id; + public CCodeDynamicSignalBinding (CCodeGenerator codegen, DynamicSignal node) { this.node = node; this.codegen = codegen; @@ -41,7 +43,7 @@ public class Vala.CCodeDynamicSignalBinding : CCodeBinding { var dynamic_signal = (DynamicSignal) node; if (connect_wrapper_name == null) { - connect_wrapper_name = "_dynamic_%s_connect".printf (node.name); + connect_wrapper_name = "_dynamic_%s%d_connect".printf (node.name, signal_wrapper_id++); var func = new CCodeFunction (connect_wrapper_name, "void"); func.add_parameter (new CCodeFormalParameter ("obj", "gpointer")); func.add_parameter (new CCodeFormalParameter ("signal_name", "const char *")); @@ -68,7 +70,7 @@ public class Vala.CCodeDynamicSignalBinding : CCodeBinding { var dynamic_signal = (DynamicSignal) node; if (disconnect_wrapper_name == null) { - disconnect_wrapper_name = "_dynamic_%s_disconnect".printf (node.name); + disconnect_wrapper_name = "_dynamic_%s%d_disconnect".printf (node.name, signal_wrapper_id++); var func = new CCodeFunction (disconnect_wrapper_name, "void"); func.add_parameter (new CCodeFormalParameter ("obj", "gpointer")); func.add_parameter (new CCodeFormalParameter ("signal_name", "const char *"));