diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-02-28 12:12:56 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2022-02-28 12:12:56 +0100 |
commit | b575891887a3aa16ea96a20af5beb141f433c55a (patch) | |
tree | 53eb81410f77b3b3d40afcddbe89def59c5b3c0e /vala | |
parent | 2d4acc80e838f0ebd3520875bbbf2ba61bd2f234 (diff) | |
download | vala-b575891887a3aa16ea96a20af5beb141f433c55a.tar.gz |
girparser: Add support for "copy_/free_function" metadata for compact classes
Diffstat (limited to 'vala')
-rw-r--r-- | vala/valagirparser.vala | 8 |
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)); } |