]> git.street.me.uk Git - andy/viking.git/commitdiff
Fix potential loss of track segment in vik_track_remove_dup_points()
authorRob Norris <rw_norris@hotmail.com>
Sun, 26 Aug 2012 10:33:48 +0000 (11:33 +0100)
committerRob Norris <rw_norris@hotmail.com>
Sun, 26 Aug 2012 11:17:25 +0000 (12:17 +0100)
Also use better trackpoint free method.

src/viktrack.c

index 67eed938e603c7f0e2ea3f4835a2df8ecc8d0588..0071a8a42bd2e60dc1dee7bb08d48830f7386230 100644 (file)
@@ -224,7 +224,11 @@ gulong vik_track_remove_dup_points ( VikTrack *tr )
                        &(VIK_TRACKPOINT(iter->next->data)->coord) ) )
     {
       num++;
-      g_free ( iter->next->data );
+      // Maintain track segments
+      if ( VIK_TRACKPOINT(iter->next->data)->newsegment && (iter->next)->next )
+        VIK_TRACKPOINT(((iter->next)->next)->data)->newsegment = TRUE;
+
+      vik_trackpoint_free ( iter->next->data );
       tr->trackpoints = g_list_delete_link ( tr->trackpoints, iter->next );
     }
     else