summaryrefslogtreecommitdiff
path: root/daemon/gdm-xdmcp-display-factory.c
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2018-07-17 20:20:55 +0000
committerRay Strode <halfline@gmail.com>2018-07-17 20:20:55 +0000
commitfeb1cf50ccc9d5e8066aa47d69c53bb39f9dff82 (patch)
tree78e722c9f1f13ad674cd6045b41c3711d226888a /daemon/gdm-xdmcp-display-factory.c
parent79a7360ba632d71c7d3b0fd9143419dcc46fb924 (diff)
downloadgdm-feb1cf50ccc9d5e8066aa47d69c53bb39f9dff82.tar.gz
display-factory: avoid removing a display from store while iterating it
Diffstat (limited to 'daemon/gdm-xdmcp-display-factory.c')
-rw-r--r--daemon/gdm-xdmcp-display-factory.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/daemon/gdm-xdmcp-display-factory.c b/daemon/gdm-xdmcp-display-factory.c
index 46a0d9ff..5b5786c6 100644
--- a/daemon/gdm-xdmcp-display-factory.c
+++ b/daemon/gdm-xdmcp-display-factory.c
@@ -2066,15 +2066,12 @@ on_display_status_changed (GdmDisplay *display,
GdmXdmcpDisplayFactory *factory)
{
int status;
- GdmDisplayStore *store;
GdmLaunchEnvironment *launch_environment;
GdmSession *session;
GdmAddress *address;
gint32 session_number;
int display_number;
- store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory));
-
launch_environment = NULL;
g_object_get (display, "launch-environment", &launch_environment, NULL);
@@ -2095,10 +2092,10 @@ on_display_status_changed (GdmDisplay *display,
NULL);
gdm_xdmcp_send_alive (factory, address, display_number, session_number);
- gdm_display_store_remove (store, display);
+ gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory));
break;
case GDM_DISPLAY_FAILED:
- gdm_display_store_remove (store, display);
+ gdm_display_factory_queue_purge_displays (GDM_DISPLAY_FACTORY (factory));
break;
case GDM_DISPLAY_UNMANAGED:
if (session != NULL) {