From: Rico Tzschichholz Date: Tue, 7 Mar 2017 15:30:03 +0000 (+0100) Subject: signalmodule: Add signal-emitter declaration if needed X-Git-Tag: 0.35.90~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=05f5f5f9b411f4f07a6f692cb78e7a0bbd8c8292;p=thirdparty%2Fvala.git signalmodule: Add signal-emitter declaration if needed https://bugzilla.gnome.org/show_bug.cgi?id=779609 --- diff --git a/codegen/valagsignalmodule.vala b/codegen/valagsignalmodule.vala index 2a1afd0d7..6e87a42cc 100644 --- a/codegen/valagsignalmodule.vala +++ b/codegen/valagsignalmodule.vala @@ -544,7 +544,16 @@ public class Vala.GSignalModule : GObjectModule { set_cvalue (expr, ccall); } else if (get_signal_has_emitter (sig)) { - var ccall = new CCodeFunctionCall (new CCodeIdentifier ("%s_%s".printf (get_ccode_lower_case_name (cl), sig.name))); + string emitter_func; + if (sig.emitter != null) { + if (!sig.external_package && expr.source_reference.file != sig.source_reference.file) { + generate_method_declaration (sig.emitter, cfile); + } + emitter_func = get_ccode_lower_case_name (sig.emitter); + } else { + emitter_func = "%s_%s".printf (get_ccode_lower_case_name (cl), sig.name); + } + var ccall = new CCodeFunctionCall (new CCodeIdentifier (emitter_func)); ccall.add_argument (pub_inst); set_cvalue (expr, ccall);