From: Rico Tzschichholz Date: Mon, 28 Feb 2022 11:12:56 +0000 (+0100) Subject: girparser: Add support for "copy_/free_function" metadata for compact classes X-Git-Tag: 0.54.8~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=21130a06eb0a9164fd04bc076d9aa87d55badd4d;p=thirdparty%2Fvala.git girparser: Add support for "copy_/free_function" metadata for compact classes --- diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index fedf6f03a..a66e5d706 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, @@ -3616,6 +3618,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)); }