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
This commit is contained in:
1 parent
6b9ce9d35d
commit
f7568dbfc8
4 files changed
+14
-9
No files matched your search
@@ -432,8 +432,8 @@ G_DEFINE_BOXED_TYPE (OstreeRepoFinderResult, ostree_repo_finder_result,
|
||||
* result
|
||||
* @priority: static priority of the result, where higher numbers indicate lower
|
||||
* priority
|
||||
* @ref_to_checksum: (element-type OstreeCollectionRef utf8): map of collection–ref pairs
|
||||
* to checksums provided by this result
|
||||
* @ref_to_checksum: (element-type OstreeCollectionRef utf8) (transfer none):
|
||||
* map of collection–ref pairs to checksums provided by this result
|
||||
* @summary_last_modified: Unix timestamp (seconds since the epoch, UTC) when
|
||||
* the summary file for the result was last modified, or `0` if this is unknown
|
||||
*
|
||||
|
||||
Reference in new issue
Block a user