]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
girparser: Apply "instance_idx" metadata for delegates
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 6 Apr 2023 16:22:38 +0000 (18:22 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Thu, 6 Apr 2023 16:22:38 +0000 (18:22 +0200)
vala/valagirparser.vala

index 355d0fa74be8a20debf94cc335a86a641e8a54ca..886f017575d82071245c9b2e5ceab7c593301885 100644 (file)
@@ -3458,6 +3458,13 @@ public class Vala.GirParser : CodeVisitor {
                                Report.error (get_current_src (), "instance_idx required when converting function to method");
                        }
                }
+               if (element_name == "callback") {
+                       if (metadata.has_argument (ArgumentType.INSTANCE_IDX)) {
+                               instance_idx = metadata.get_integer (ArgumentType.INSTANCE_IDX);
+                               s.set_attribute_double ("CCode", "instance_pos", instance_idx + 0.9);
+                               ((Delegate) s).has_target = true;
+                       }
+               }
 
                var parameters = new ArrayList<ParameterInfo> ();
                current.array_length_parameters = new ArrayList<int> ();