renderer/native: Steal the power save flip list before iterating over it
Because a single iteration might also grow the list again. (cherry picked from commit d3e50cc023acc440cb483604cc82b04778703f52) Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1441> Signed-off-by: Mingi Sung <sungmg@saltyming.net>
This commit is contained in:
parent
2c8aec356a
commit
83f32de4a7
1 changed files with 8 additions and 3 deletions
|
@ -747,12 +747,17 @@ static gboolean
|
|||
dummy_power_save_page_flip_cb (gpointer user_data)
|
||||
{
|
||||
MetaRendererNative *renderer_native = user_data;
|
||||
g_autolist (GObject) old_list = NULL;
|
||||
|
||||
g_list_foreach (renderer_native->power_save_page_flip_onscreens,
|
||||
old_list = g_steal_pointer (&renderer_native->power_save_page_flip_onscreens);
|
||||
|
||||
g_list_foreach (old_list,
|
||||
(GFunc) meta_onscreen_native_dummy_power_save_page_flip,
|
||||
NULL);
|
||||
g_clear_list (&renderer_native->power_save_page_flip_onscreens,
|
||||
g_object_unref);
|
||||
|
||||
if (renderer_native->power_save_page_flip_onscreens != NULL)
|
||||
return G_SOURCE_CONTINUE;
|
||||
|
||||
renderer_native->power_save_page_flip_source_id = 0;
|
||||
|
||||
return G_SOURCE_REMOVE;
|
||||
|
|
Loading…
Add table
Reference in a new issue