mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 17:40:40 -05:00
monitor-config-store: Replace key when replacing config
g_hash_table_insert() doesn't replace the key. This was a problem because the key was owned by the value inserted into the hash table, so when a value was removed, the key was freed, meaning that the key in the hash table was no pointing to freed memory. Fix this by using g_hash_table_replace() instead, which work the same except that it replaces the key with the one passed. This means that the key of a value in the hash table is always the key owned by the value. https://bugzilla.gnome.org/show_bug.cgi?id=777732
This commit is contained in:
parent
3f107da479
commit
0608ae2d4e
@ -1185,8 +1185,8 @@ void
|
||||
meta_monitor_config_store_add (MetaMonitorConfigStore *config_store,
|
||||
MetaMonitorsConfig *config)
|
||||
{
|
||||
g_hash_table_insert (config_store->configs,
|
||||
config->key, g_object_ref (config));
|
||||
g_hash_table_replace (config_store->configs,
|
||||
config->key, g_object_ref (config));
|
||||
|
||||
if (!config_store->custom_file)
|
||||
meta_monitor_config_store_save (config_store);
|
||||
|
Loading…
Reference in New Issue
Block a user