[gnome-maps/wip/jonasdn/vector-tiles] Proper memory management



commit ae0d6801617270cc44ef63a1ff68b54c26693b64
Author: Jonas Danielsson <jonas threetimestwo org>
Date:   Sun Apr 26 09:58:48 2015 +0200

    Proper memory management

 lib/maps-mapbox-renderer.c   |    9 ++-------
 lib/maps-mapbox-text-layer.c |    7 ++++---
 2 files changed, 6 insertions(+), 10 deletions(-)
---
diff --git a/lib/maps-mapbox-renderer.c b/lib/maps-mapbox-renderer.c
index a1fbe34..cbb9b80 100644
--- a/lib/maps-mapbox-renderer.c
+++ b/lib/maps-mapbox-renderer.c
@@ -173,26 +173,21 @@ on_canvas_draw (ClutterCanvas *canvas,
                           champlain_tile_get_size (data->tile));
   clutter_actor_set_content (actor, data->canvas);
   g_object_unref (data->canvas);
-  g_object_unref (mapbox);
 
   texts = vtile_mapbox_get_texts (mapbox);
   for (l = texts; l != NULL; l = l->next) {
     maps_mapbox_text_layer_add_text (data->layer, data->tile, l->data);
   }
 
- finish:
-  if (actor)
-    champlain_tile_set_content (data->tile, actor);
-
+  champlain_tile_set_content (data->tile, actor);
   g_signal_emit_by_name (data->tile, "render-complete",
                          data->data, data->size, success);
 
-
+  g_object_unref (mapbox);
   g_object_unref (data->tile);
   g_free (data->data);
   g_free (data);
 
-
   return TRUE;
 }
 
diff --git a/lib/maps-mapbox-text-layer.c b/lib/maps-mapbox-text-layer.c
index 2eb70d2..cc18195 100644
--- a/lib/maps-mapbox-text-layer.c
+++ b/lib/maps-mapbox-text-layer.c
@@ -56,7 +56,8 @@ maps_mapbox_text_layer_init (MapsMapboxTextLayer *self)
   MapsMapboxTextLayerPrivate *priv;
 
   self->priv = maps_mapbox_text_layer_get_instance_private (self);
-  self->priv->objects = g_hash_table_new (g_str_hash, g_str_equal);
+  self->priv->objects = g_hash_table_new_full (g_str_hash, g_str_equal,
+                                               g_free, NULL);
   self->priv->view = NULL;
 }
 
@@ -112,7 +113,8 @@ maps_mapbox_text_layer_add_text (MapsMapboxTextLayer *layer,
   if (g_hash_table_lookup (layer->priv->objects, text->uid)) {
     return;
   } else {
-    g_hash_table_insert (layer->priv->objects, text->uid, text->uid);
+    g_hash_table_insert (layer->priv->objects,
+                         g_strdup (text->uid), "dummy");
   }
 
   canvas = clutter_canvas_new ();
@@ -135,7 +137,6 @@ maps_mapbox_text_layer_add_text (MapsMapboxTextLayer *layer,
   clutter_actor_add_child (CLUTTER_ACTOR (layer), actor);
 }
 
-
 /**
  * maps_mapbox_text_layer_remove_all:
  * @layer: a #MapsMapboxTextLayer


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]