]> err.no Git - libchamplain/commitdiff
Fix memory leaks in champlain_network_map_source_get_tile_uri
authorPierre-Luc Beaudoin <pierre-luc@pierlux.com>
Wed, 25 Mar 2009 20:49:10 +0000 (22:49 +0200)
committerPierre-Luc Beaudoin <pierre-luc@pierlux.com>
Wed, 25 Mar 2009 20:49:10 +0000 (22:49 +0200)
champlain/champlain-network-map-source.c
champlain/champlain-network-map-source.h

index 29430796f889abada4dae7cba3b19bb66587de5e..3efb38aaf100960cef10d246b613353043b1cc87 100644 (file)
@@ -225,7 +225,7 @@ champlain_network_map_source_new_full (const gchar *name,
   return network_map_source;
 }
 
-const gchar *
+gchar *
 champlain_network_map_source_get_tile_uri (ChamplainNetworkMapSource *network_map_source,
                                            gint x,
                                            gint y,
@@ -260,7 +260,7 @@ champlain_network_map_source_get_tile_uri (ChamplainNetworkMapSource *network_ma
           g_string_append (ret, value);
         }
       else
-        g_string_append (ret, token);
+        g_string_append (ret, g_strdup (token));
 
       token = tokens[++i];
     }
@@ -520,7 +520,7 @@ champlain_network_map_source_get_tile (ChamplainMapSource *map_source,
   else if (!priv->offline)
     {
       SoupMessage *msg;
-      const gchar *uri;
+      gchar *uri;
       FileLoadedCallbackContext *ctx = g_new0 (FileLoadedCallbackContext, 1);
       ctx->view = view;
       ctx->zoom_level = zoom_level;
@@ -540,6 +540,7 @@ champlain_network_map_source_get_tile (ChamplainMapSource *map_source,
       soup_session_queue_message (soup_session, msg,
                                   file_loaded_cb,
                                   ctx);
+      g_free (uri);
     }
   /* If a tile is neither in cache or can be fetched, do nothing, it'll show up
    * as empty
index 5009d54fc2e193ca37d0766e328ee85047150811..1ec03033ba6326df4d3476fbed2b4bc446c76507 100644 (file)
@@ -63,7 +63,7 @@ ChamplainMapSource * champlain_map_source_new_osm_osmarender (void);
 ChamplainMapSource * champlain_map_source_new_oam (void);
 ChamplainMapSource * champlain_map_source_new_mff_relief (void);
 
-const gchar * champlain_network_map_source_get_tile_uri (ChamplainNetworkMapSource *source,
+gchar * champlain_network_map_source_get_tile_uri (ChamplainNetworkMapSource *source,
     gint x, gint y, gint z);
 
 void champlain_network_map_source_set_tile_uri (ChamplainNetworkMapSource *network_map_source,