repo: Fix object list keys ownership
ostree_object_name_serialize returns a floating ref, so sink it before adding it to the hash table so it can properly be freed later when the hash table is destroyed. This is particularly a problem for pygobject, which sinks the refs on variants as it marshals them to native python types. If the ref isn't already sunk, then the ref count won't increase and a critical warning will be raised when both the hash table and pygobject try to unref it. Closes: #635 Approved by: cgwalters
This commit is contained in:
parent
169a629345
commit
dd3cda401b
|
|
@ -2460,7 +2460,7 @@ list_loose_objects_at (OstreeRepo *self,
|
||||||
value = g_variant_new ("(b@as)",
|
value = g_variant_new ("(b@as)",
|
||||||
TRUE, g_variant_new_strv (NULL, 0));
|
TRUE, g_variant_new_strv (NULL, 0));
|
||||||
/* transfer ownership */
|
/* transfer ownership */
|
||||||
g_hash_table_replace (inout_objects, key,
|
g_hash_table_replace (inout_objects, g_variant_ref_sink (key),
|
||||||
g_variant_ref_sink (value));
|
g_variant_ref_sink (value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue