summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2023-04-06 18:22:38 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2023-04-06 18:22:38 +0200
commit07e3edcdf249318fa24d641d1ddf96de43ccaa5a (patch)
treef1e7640e08c73c20ab8f7d71edfd2b3d4df623cc
parent3a10507f2c942d8ad3fc176bef2a6868a36279b7 (diff)
downloadvala-07e3edcdf249318fa24d641d1ddf96de43ccaa5a.tar.gz
girparser: Apply "instance_idx" metadata for delegates
-rw-r--r--vala/valagirparser.vala7
1 files changed, 7 insertions, 0 deletions
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index 355d0fa74..886f01757 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -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> ();