diff options
author | Lubomir I. Ivanov <neolit123@gmail.com> | 2013-02-09 21:30:01 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-02-09 11:41:20 -0800 |
commit | df8fb3be9876468fd2b80283774cce278c1aedf8 (patch) | |
tree | fdeebb77994ba6f9deae8e684bd857d6d0068d0a /gps.c | |
parent | 801b0832aec41cf878c9a384dc46ba72b65a4083 (diff) | |
download | subsurface-df8fb3be9876468fd2b80283774cce278c1aedf8.tar.gz |
gps.c: Make two more memory leak fixes and a small coding style change
1)
add_gps_point():
Apparently osm_gps_map_point_new_*() is leaking memory if the
point struct is not freed after the point is added to the
map osm_gps_map_track_add_point().
However the API for releasing a point is missing on
older Windows builds of the map library, so instead of
osm_gps_map_point_free() we simply call:
free((void *)point);
2)
init_map()
According to memory management tools
osm_gps_map_get_default_cache_directory() is using g_realloc
for eventual string expansion therefore we have to release at the
returned pointer.
3)
add_gps_point()
Also a small coding style change is made:
move the pointer symbol (*) near the name of the variable
instead of leaving spaces on both sides, like:
<type> * <name>
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
...
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'gps.c')
-rw-r--r-- | gps.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -135,10 +135,11 @@ static gboolean scroll_cb(GtkWidget *widget, GdkEventScroll *event, gpointer dat static void add_gps_point(OsmGpsMap *map, float latitude, float longitude) { - OsmGpsMapTrack * track = osm_gps_map_track_new(); - OsmGpsMapPoint * point = osm_gps_map_point_new_degrees(latitude, longitude); + OsmGpsMapTrack *track = osm_gps_map_track_new(); + OsmGpsMapPoint *point = osm_gps_map_point_new_degrees(latitude, longitude); osm_gps_map_track_add_point(track, point); osm_gps_map_track_add(map, track); + free((void *)point); } static void key_press_event(GtkWidget *window, GdkEventKey *event, gpointer data) @@ -177,6 +178,7 @@ OsmGpsMap *init_map(void) osm_gps_map_layer_add(OSM_GPS_MAP(map), osd); g_object_unref(G_OBJECT(osd)); + free((void*)cachebasedir); return map; } |