summaryrefslogtreecommitdiff
path: root/src/libostree/ostree-soup-form.c
diff options
context:
space:
mode:
authorPhilip Withnall <withnall@endlessm.com>2017-11-14 16:13:13 +0000
committerAtomic Bot <atomic-devel@projectatomic.io>2017-11-14 23:13:14 +0000
commitf7568dbfc8b9a38ad5b81179c83ae5a929b7c9a1 (patch)
treef44f25d625e2cf77bf4f413e0675810a3946edc9 /src/libostree/ostree-soup-form.c
parent6b9ce9d35d9a8d5596b96f72da8f0f3faed3f62c (diff)
downloadostree-f7568dbfc8b9a38ad5b81179c83ae5a929b7c9a1.tar.gz
lib/repo: Add (transfer) annotations to various GHashTable arguments
By default, unless it’s const, an (out) GHashTable will be assumed to be (transfer full). That means the binding needs to free all the items in the hash table, plus the table itself. However, all the GHashTables we use have free functions set already, so freeing the hash table will free its items. This results in a double-free. Fix that by ensuring we annotate such (out) hash tables as (transfer container). Also annotate some other hash tables as (transfer none) where appropriate, for clarity. This fixes OSTree.Repo.list_collection_refs() in the Python bindings. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #1341 Approved by: dbnicholson
Diffstat (limited to 'src/libostree/ostree-soup-form.c')
-rw-r--r--src/libostree/ostree-soup-form.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libostree/ostree-soup-form.c b/src/libostree/ostree-soup-form.c
index 74f9c7bb..dfaffb96 100644
--- a/src/libostree/ostree-soup-form.c
+++ b/src/libostree/ostree-soup-form.c
@@ -82,7 +82,7 @@ encode_pair (GString *str, const char *name, const char *value)
/**
* soup_form_encode_hash:
- * @form_data_set: (element-type utf8 utf8): a hash table containing
+ * @form_data_set: (element-type utf8 utf8) (transfer none): a hash table containing
* name/value pairs (as strings)
*
* Encodes @form_data_set into a value of type