]> Pileus Git - aweather/blobdiff - src/plugins/radar.c
Improve shutdown code
[aweather] / src / plugins / radar.c
index d9b322ffbefe9804bd8338c6861f1239f5739e04..94b18c6cbc613e602ba9d0f75af196b67f5f9733 100644 (file)
@@ -777,9 +777,13 @@ static void grits_plugin_radar_dispose(GObject *gobject)
 {
        g_debug("GritsPluginRadar: dispose");
        GritsPluginRadar *self = GRITS_PLUGIN_RADAR(gobject);
 {
        g_debug("GritsPluginRadar: dispose");
        GritsPluginRadar *self = GRITS_PLUGIN_RADAR(gobject);
-       g_signal_handler_disconnect(self->config, self->tab_id);
-       grits_viewer_remove(self->viewer, GRITS_OBJECT(self->hud));
-       radar_conus_free(self->conus);
+       if (self->viewer) {
+               GritsViewer *viewer = self->viewer;
+               self->viewer = NULL;
+               g_signal_handler_disconnect(self->config, self->tab_id);
+               grits_viewer_remove(viewer, GRITS_OBJECT(self->hud));
+               radar_conus_free(self->conus);
+       }
        /* Drop references */
        G_OBJECT_CLASS(grits_plugin_radar_parent_class)->dispose(gobject);
 }
        /* Drop references */
        G_OBJECT_CLASS(grits_plugin_radar_parent_class)->dispose(gobject);
 }