Florian Müllner 7ed93f7
From a5370ce3bd9092d0909e1f00dc9f1b53ebe40e37 Mon Sep 17 00:00:00 2001
Florian Müllner 7ed93f7
From: "Jasper St. Pierre" <jstpierre@mecheye.net>
Florian Müllner 7ed93f7
Date: Tue, 28 Jan 2014 16:47:23 -0500
Florian Müllner 7ed93f7
Subject: [PATCH] shell-app: Don't crash when trying to dispose
Florian Müllner 7ed93f7
Florian Müllner 7ed93f7
If we dispose a ShellApp that has windows left, then we'll crash
Florian Müllner 7ed93f7
when we remove the last window, as that frees and NULLs out
Florian Müllner 7ed93f7
app->running_state.
Florian Müllner 7ed93f7
Florian Müllner 7ed93f7
https://bugzilla.gnome.org/show_bug.cgi?id=723197
Florian Müllner 7ed93f7
---
Florian Müllner 7ed93f7
 src/shell-app.c | 8 +++-----
Florian Müllner 7ed93f7
 1 file changed, 3 insertions(+), 5 deletions(-)
Florian Müllner 7ed93f7
Florian Müllner 7ed93f7
diff --git a/src/shell-app.c b/src/shell-app.c
Florian Müllner 7ed93f7
index 99f51ed..f5b647c 100644
Florian Müllner 7ed93f7
--- a/src/shell-app.c
Florian Müllner 7ed93f7
+++ b/src/shell-app.c
Florian Müllner 7ed93f7
@@ -1590,11 +1590,9 @@ shell_app_dispose (GObject *object)
Florian Müllner 7ed93f7
       app->entry = NULL;
Florian Müllner 7ed93f7
     }
Florian Müllner 7ed93f7
 
Florian Müllner 7ed93f7
-  if (app->running_state)
Florian Müllner 7ed93f7
-    {
Florian Müllner 7ed93f7
-      while (app->running_state->windows)
Florian Müllner 7ed93f7
-        _shell_app_remove_window (app, app->running_state->windows->data);
Florian Müllner 7ed93f7
-    }
Florian Müllner 7ed93f7
+  while (app->running_state)
Florian Müllner 7ed93f7
+    _shell_app_remove_window (app, app->running_state->windows->data);
Florian Müllner 7ed93f7
+
Florian Müllner 7ed93f7
   /* We should have been transitioned when we removed all of our windows */
Florian Müllner 7ed93f7
   g_assert (app->state == SHELL_APP_STATE_STOPPED);
Florian Müllner 7ed93f7
   g_assert (app->running_state == NULL);
Florian Müllner 7ed93f7
-- 
Florian Müllner 7ed93f7
1.8.5.3
Florian Müllner 7ed93f7