From dfaee278557596d3272c036818196b15f8cc3f7c Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Mon, 25 Jan 2010 20:52:35 +0000 Subject: [PATCH] Handle broken images gracefully Don't add broken data to tiles and delete broken pixmaps from disk. Don't attempt to re-fetch it though, since that could infinite loop. --- src/plugins/bmng.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/bmng.c b/src/plugins/bmng.c index c7b65fe..648b9ba 100644 --- a/src/plugins/bmng.c +++ b/src/plugins/bmng.c @@ -16,6 +16,7 @@ */ #include +#include #include #include @@ -77,10 +78,13 @@ static void _load_tile(GisTile *tile, gpointer _self) data->self = self; data->tile = tile; data->pixbuf = gdk_pixbuf_new_from_file(path, NULL); - if (!data->pixbuf) + if (data->pixbuf) { + g_idle_add_full(G_PRIORITY_LOW, _load_tile_cb, data, NULL); + } else { g_warning("GisPluginBmng: _load_tile - Error loading pixbuf %s", path); + g_remove(path); + } g_free(path); - g_idle_add_full(G_PRIORITY_LOW, _load_tile_cb, data, NULL); g_debug("GisPluginBmng: _load_tile end %p", g_thread_self()); } -- 2.43.2