]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
gtkmodule: Error out on malformed signal definition
authorTimm Bäder <mail@baedert.org>
Thu, 29 May 2014 10:18:27 +0000 (12:18 +0200)
committerLuca Bruno <luca.bruno@immobiliare.it>
Thu, 29 May 2014 11:08:06 +0000 (13:08 +0200)
Connecting to a signal in a gtk composite template needs both the
signal's name and a handler function to connect to.

codegen/valagtkmodule.vala

index b6c9c300e5c9c74933d89f6bebbe2a9ab01133b9..deb0704552f25e5e6f713a2e94e7de59db282d8b 100644 (file)
@@ -126,7 +126,13 @@ public class Vala.GtkModule : GSignalModule {
                        } else if (current_class != null && current_token == MarkupTokenType.START_ELEMENT && reader.name == "signal") {
                                var signal_name = reader.get_attribute ("name");
                                var handler_name = reader.get_attribute ("handler");
+
                                if (current_class != null) {
+                                       if (signal_name == null || handler_name == null) {
+                                               Report.error (node.source_reference, "Invalid signal in ui file `%s'".printf (ui_file));
+                                               current_token = reader.read_token (null, null);
+                                               continue;
+                                       }
                                        var sep_idx = signal_name.index_of ("::");
                                        if (sep_idx >= 0) {
                                                // detailed signal, we don't care about the detail