]> Pileus Git - grits/blobdiff - src/plugins/map.c
More reference counting updates
[grits] / src / plugins / map.c
index c57bae88610e4b8becbd6582bf3129c2c082d0d5..13f986c10e5dd2dbdc22245ff03d0a09483c1408 100644 (file)
@@ -57,6 +57,10 @@ static gboolean _load_tile_cb(gpointer _data)
 {
        struct _LoadTileData *data = _data;
        g_debug("GritsPluginMap: _load_tile_cb start");
+       if (data->map->aborted) {
+               g_debug("GritsPluginMap: _load_tile - aborted");
+               return FALSE;
+       }
 
        guint *tex = g_new0(guint, 1);
        glGenTextures(1, tex);
@@ -73,7 +77,8 @@ static gboolean _load_tile_cb(gpointer _data)
        glFlush();
 
        data->tile->data = tex;
-       gtk_widget_queue_draw(GTK_WIDGET(data->map->viewer));
+       if (data->map->viewer)
+               gtk_widget_queue_draw(GTK_WIDGET(data->map->viewer));
        g_free(data->pixels);
        g_free(data);
        return FALSE;
@@ -243,6 +248,7 @@ static void grits_plugin_map_dispose(GObject *gobject)
                map->viewer = NULL;
                g_signal_handler_disconnect(viewer, map->sigid);
                grits_viewer_remove(viewer, GRITS_OBJECT(map->tiles));
+               g_object_unref(map->tiles);
                soup_session_abort(map->tms->http->soup);
                //soup_session_abort(map->wms->http->soup);
                g_thread_pool_free(map->threads, TRUE, TRUE);