From 44b19fd22471a214dd116ba764049041c3ea1fac Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Tue, 8 Oct 2019 14:04:35 +0200 Subject: [PATCH] girparser: Add required copy/free attributes for gtype-boxed structs See https://gitlab.gnome.org/GNOME/vala/issues/863 --- vala/valagirparser.vala | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vala/valagirparser.vala b/vala/valagirparser.vala index 828cc6959..54c541c79 100644 --- a/vala/valagirparser.vala +++ b/vala/valagirparser.vala @@ -2783,6 +2783,7 @@ public class Vala.GirParser : CodeVisitor { push_node (element_get_name (), true); Struct st; + bool require_copy_free = false; if (current.new_symbol) { st = new Struct (element_get_name (), current.source_reference); current.symbol = st; @@ -2791,6 +2792,7 @@ public class Vala.GirParser : CodeVisitor { } set_type_id_ccode (st); + require_copy_free = st.has_attribute_argument ("CCode", "type_id"); st.access = SymbolAccessibility.PUBLIC; @@ -2840,6 +2842,12 @@ public class Vala.GirParser : CodeVisitor { pop_metadata (); } + // Add default g_boxed_copy/free ccode-attributes + if (require_copy_free) { + st.set_attribute_string ("CCode", "copy_function", "g_boxed_copy"); + st.set_attribute_string ("CCode", "free_function", "g_boxed_free"); + } + pop_node (); end_element ("record"); } -- 2.47.2