summaryrefslogtreecommitdiff
path: root/vala/valagirparser.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-01-25 21:11:55 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2021-01-25 21:14:17 +0100
commit3037b41b6f44a7a3fe7d2bcf3f51177425b2e5cf (patch)
treee94c62b50d7edb43ba87df8897eadbe456fc0ff7 /vala/valagirparser.vala
parentbb97ca55e499e47bd3b02113fca65d02d993ec88 (diff)
downloadvala-3037b41b6f44a7a3fe7d2bcf3f51177425b2e5cf.tar.gz
girparser: Apply "delegate_target" metadata for methods and parameters
Diffstat (limited to 'vala/valagirparser.vala')
-rw-r--r--vala/valagirparser.vala6
1 files changed, 6 insertions, 0 deletions
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index c17658981..63cb7fc6c 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -979,6 +979,9 @@ public class Vala.GirParser : CodeVisitor {
}
}
}
+ if (metadata.has_argument (ArgumentType.DELEGATE_TARGET)) {
+ m.set_attribute_bool ("CCode", "delegate_target", metadata.get_bool (ArgumentType.DELEGATE_TARGET));
+ }
if (m.coroutine) {
parser.process_async_method (this);
}
@@ -2638,6 +2641,9 @@ public class Vala.GirParser : CodeVisitor {
} else if (direction == "inout") {
param.direction = ParameterDirection.REF;
}
+ if (type is DelegateType && metadata.has_argument (ArgumentType.DELEGATE_TARGET)) {
+ param.set_attribute_bool ("CCode", "delegate_target", metadata.get_bool (ArgumentType.DELEGATE_TARGET));
+ }
if (type is ArrayType) {
if (metadata.has_argument (ArgumentType.ARRAY_LENGTH_IDX)) {
array_length_idx = metadata.get_integer (ArgumentType.ARRAY_LENGTH_IDX);