1
0
Fork 0

backends/color-store: Clarify the color profile ownership fixing the key leak

We were leaking the color profile path keys but also it wasn't clear how
the ownership was passed to the new hash-table, so let's just remove it
from the pending hash table and add it to the new one including the
expected reference.

This is safe because we were still adding a temporary extra ref to the
profile

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3788>
This commit is contained in:
Marco Trevisan (Treviño) 2024-05-29 20:43:43 +02:00 committed by Marge Bot
parent c2cc26b370
commit 430e55a535

View file

@ -99,13 +99,16 @@ on_directory_profile_ready (MetaColorProfile *color_profile,
g_object_ref (color_profile); g_object_ref (color_profile);
if (!g_hash_table_steal (color_store->pending_local_profiles, if (!g_hash_table_remove (color_store->pending_local_profiles,
meta_color_profile_get_file_path (color_profile))) meta_color_profile_get_file_path (color_profile)))
{
g_object_unref (color_profile);
g_warn_if_reached (); g_warn_if_reached ();
}
g_hash_table_insert (color_store->profiles, g_hash_table_insert (color_store->profiles,
g_strdup (meta_color_profile_get_id (color_profile)), g_strdup (meta_color_profile_get_id (color_profile)),
color_profile); g_object_ref (color_profile));
meta_topic (META_DEBUG_COLOR, "Created colord profile '%s' from '%s'", meta_topic (META_DEBUG_COLOR, "Created colord profile '%s' from '%s'",
meta_color_profile_get_id (color_profile), meta_color_profile_get_id (color_profile),