2008-05-10 Jürg Billeter <j@bitron.ch>
+ * 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 <j@bitron.ch>
+
* vala/valaparser.vala:
Fix `namespace Foo.Bar {...}' parsing, fixes bug 531379
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;
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 *"));
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 *"));