summaryrefslogtreecommitdiff
path: root/girepository/girwriter.c
diff options
context:
space:
mode:
Diffstat (limited to 'girepository/girwriter.c')
-rw-r--r--girepository/girwriter.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/girepository/girwriter.c b/girepository/girwriter.c
index ea148f32..276bb676 100644
--- a/girepository/girwriter.c
+++ b/girepository/girwriter.c
@@ -642,6 +642,7 @@ write_struct_info (const gchar *namespace,
const gchar *name;
const gchar *type_name;
const gchar *type_init;
+ const gchar *func;
gboolean deprecated;
gboolean is_gtype_struct;
gboolean foreign;
@@ -676,6 +677,14 @@ write_struct_info (const gchar *namespace,
if (is_gtype_struct)
xml_printf (file, " glib:is-gtype-struct=\"1\"");
+ func = g_struct_info_get_copy_function (info);
+ if (func)
+ xml_printf (file, " copy-function=\"%s\"", func);
+
+ func = g_struct_info_get_free_function (info);
+ if (func)
+ xml_printf (file, " free-function=\"%s\"", func);
+
write_attributes (file, (GIBaseInfo*) info);
size = g_struct_info_get_size (info);
@@ -1237,6 +1246,7 @@ write_union_info (const gchar *namespace,
const gchar *name;
const gchar *type_name;
const gchar *type_init;
+ const gchar *func;
gboolean deprecated;
gint i;
gint size;
@@ -1260,6 +1270,14 @@ write_union_info (const gchar *namespace,
if (file->show_all && size >= 0)
xml_printf (file, " size=\"%d\"", size);
+ func = g_union_info_get_copy_function (info);
+ if (func)
+ xml_printf (file, " copy-function=\"%s\"", func);
+
+ func = g_union_info_get_free_function (info);
+ if (func)
+ xml_printf (file, " free-function=\"%s\"", func);
+
write_attributes (file, (GIBaseInfo*) info);
if (g_union_info_is_discriminated (info))