X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/1fe49af0ed8ab6c226fd2b3486851a395ee657ab..46e4fa54e7da3e4d0c0ba448a3ab9b16b5077664:/src/mapcache.c diff --git a/src/mapcache.c b/src/mapcache.c index 6df3d8c1..f697252d 100644 --- a/src/mapcache.c +++ b/src/mapcache.c @@ -132,7 +132,7 @@ GdkPixbuf *a_mapcache_get ( gint x, gint y, gint z, guint8 type, guint zoom, gui return g_hash_table_lookup ( cache, key ); } -void a_mapcache_remove_all_shrinkfactors ( guint16 x, guint16 y, guint16 z, guint8 type, guint zoom ) +void a_mapcache_remove_all_shrinkfactors ( gint x, gint y, gint z, guint8 type, guint zoom ) { char key[40]; List *loop = queue_tail; @@ -151,10 +151,13 @@ void a_mapcache_remove_all_shrinkfactors ( guint16 x, guint16 y, guint16 z, guin if ( strncmp(tmp->key, key, len) == 0 ) { g_hash_table_remove ( cache, tmp->key ); - if ( tmp == loop ) + if ( tmp == loop ) /* we deleted the last thing in the queue! */ loop = queue_tail = NULL; - else + else { loop->next = tmp->next; + if ( tmp == queue_tail ) + queue_tail = tmp->next; + } g_free ( tmp ); tmp = NULL; }