summaryrefslogtreecommitdiff
path: root/vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2022-02-28 12:12:56 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2022-02-28 12:12:56 +0100
commitb575891887a3aa16ea96a20af5beb141f433c55a (patch)
tree53eb81410f77b3b3d40afcddbe89def59c5b3c0e /vala
parent2d4acc80e838f0ebd3520875bbbf2ba61bd2f234 (diff)
downloadvala-b575891887a3aa16ea96a20af5beb141f433c55a.tar.gz
girparser: Add support for "copy_/free_function" metadata for compact classes
Diffstat (limited to 'vala')
-rw-r--r--vala/valagirparser.vala8
1 files changed, 8 insertions, 0 deletions
diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala
index 88f38434b..53d073926 100644
--- a/vala/valagirparser.vala
+++ b/vala/valagirparser.vala
@@ -88,6 +88,8 @@ public class Vala.GirParser : CodeVisitor {
FLOATING,
TYPE_ID,
TYPE_GET_FUNCTION,
+ COPY_FUNCTION,
+ FREE_FUNCTION,
REF_FUNCTION,
REF_SINK_FUNCTION,
UNREF_FUNCTION,
@@ -3615,6 +3617,12 @@ public class Vala.GirParser : CodeVisitor {
if (metadata.has_argument (ArgumentType.BASE_TYPE)) {
cl.add_base_type (parse_type_from_string (metadata.get_string (ArgumentType.BASE_TYPE), true, metadata.get_source_reference (ArgumentType.BASE_TYPE)));
}
+ if (metadata.has_argument (ArgumentType.COPY_FUNCTION)) {
+ cl.set_attribute_string ("CCode", "copy_function", metadata.get_string (ArgumentType.COPY_FUNCTION));
+ }
+ if (metadata.has_argument (ArgumentType.FREE_FUNCTION)) {
+ cl.set_attribute_string ("CCode", "free_function", metadata.get_string (ArgumentType.FREE_FUNCTION));
+ }
if (metadata.has_argument (ArgumentType.REF_FUNCTION)) {
cl.set_attribute_string ("CCode", "ref_function", metadata.get_string (ArgumentType.REF_FUNCTION));
}