From 35351c7db337c4384ef642fbc8b8676f0944686a Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Wed, 25 Sep 2019 13:09:22 -0700 Subject: [PATCH] altoslib: Don't crash when map flight data is missing Just a couple of null pointer checks to allow the map display to come up even when no data are available. Signed-off-by: Keith Packard --- altoslib/AltosMap.java | 2 ++ altosuilib/AltosUIGraph.java | 3 ++- altosuilib/AltosUIMap.java | 18 +++++++++--------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/altoslib/AltosMap.java b/altoslib/AltosMap.java index 69142c37..8fc40e8a 100644 --- a/altoslib/AltosMap.java +++ b/altoslib/AltosMap.java @@ -499,6 +499,8 @@ public class AltosMap implements AltosMapTileListener, AltosMapStoreListener { notice_user_input(); if (path == null) return null; + if (transform == null) + return null; AltosLatLon at = transform.screen_lat_lon(new AltosPointInt(x, y)); return path.nearest(at); } diff --git a/altosuilib/AltosUIGraph.java b/altosuilib/AltosUIGraph.java index 098e9a52..da024513 100644 --- a/altosuilib/AltosUIGraph.java +++ b/altosuilib/AltosUIGraph.java @@ -137,7 +137,8 @@ public class AltosUIGraph implements AltosUnitsListener, AltosShapeListener { this.series = null; this.axis_index = 0; - enable.register_shape_listener(this); + if (enable != null) + enable.register_shape_listener(this); axes_added = new Hashtable(); diff --git a/altosuilib/AltosUIMap.java b/altosuilib/AltosUIMap.java index 5b981d14..bd0a855c 100644 --- a/altosuilib/AltosUIMap.java +++ b/altosuilib/AltosUIMap.java @@ -148,16 +148,16 @@ public class AltosUIMap extends JComponent implements AltosFlightDisplay, AltosM public void mouseMoved(MouseEvent e) { AltosMapPathPoint point = map.nearest(e.getPoint().x, e.getPoint().y); - if (nearest_mark == null) - nearest_mark = map.add_mark(point.gps.lat, - point.gps.lon, - point.state); - else { - nearest_mark.lat_lon.lat = point.gps.lat; - nearest_mark.lat_lon.lon = point.gps.lon; - nearest_mark.state = point.state; - } if (point != null) { + if (nearest_mark == null) + nearest_mark = map.add_mark(point.gps.lat, + point.gps.lon, + point.state); + else { + nearest_mark.lat_lon.lat = point.gps.lat; + nearest_mark.lat_lon.lon = point.gps.lon; + nearest_mark.state = point.state; + } nearest_label.setText(String.format("%9.2f sec %s%s%s%s", point.time, pos(point.gps.lat, -- 2.30.2