diff options
author | Bananeweizen <bananeweizen@gmx.de> | 2013-01-05 11:03:58 +0100 |
---|---|---|
committer | Bananeweizen <bananeweizen@gmx.de> | 2013-01-05 11:03:58 +0100 |
commit | 68069dc6982f3a2c87690eb9171f5820064ebbab (patch) | |
tree | 0be0bf26f5d3d272224d048d82fc32abef37a188 /main/src/cgeo/geocaching/geopoint | |
parent | 656e92453fcf0e9d7da137cd4c3551b6530e9969 (diff) | |
download | cgeo-68069dc6982f3a2c87690eb9171f5820064ebbab.zip cgeo-68069dc6982f3a2c87690eb9171f5820064ebbab.tar.gz cgeo-68069dc6982f3a2c87690eb9171f5820064ebbab.tar.bz2 |
fix #2328: Have a wrapper around Matcher to avoid String related memory
issues
Diffstat (limited to 'main/src/cgeo/geocaching/geopoint')
-rw-r--r-- | main/src/cgeo/geocaching/geopoint/DistanceParser.java | 5 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/geopoint/GeopointParser.java | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/main/src/cgeo/geocaching/geopoint/DistanceParser.java b/main/src/cgeo/geocaching/geopoint/DistanceParser.java index d8db8e4..e1692f4 100644 --- a/main/src/cgeo/geocaching/geopoint/DistanceParser.java +++ b/main/src/cgeo/geocaching/geopoint/DistanceParser.java @@ -1,9 +1,10 @@ package cgeo.geocaching.geopoint; +import cgeo.geocaching.utils.MatcherWrapper; + import org.apache.commons.lang3.StringUtils; import java.util.Locale; -import java.util.regex.Matcher; import java.util.regex.Pattern; public final class DistanceParser { @@ -22,7 +23,7 @@ public final class DistanceParser { * if the given number is invalid */ public static float parseDistance(String distanceText, final boolean metricUnit) { - final Matcher matcher = pattern.matcher(distanceText); + final MatcherWrapper matcher = new MatcherWrapper(pattern, distanceText); if (!matcher.find()) { throw new NumberFormatException(distanceText); diff --git a/main/src/cgeo/geocaching/geopoint/GeopointParser.java b/main/src/cgeo/geocaching/geopoint/GeopointParser.java index 7604b9d..97a9ec8 100644 --- a/main/src/cgeo/geocaching/geopoint/GeopointParser.java +++ b/main/src/cgeo/geocaching/geopoint/GeopointParser.java @@ -1,9 +1,10 @@ package cgeo.geocaching.geopoint; +import cgeo.geocaching.utils.MatcherWrapper; + import org.apache.commons.lang3.StringUtils; -import java.util.regex.Matcher; import java.util.regex.Pattern; /** @@ -105,7 +106,7 @@ class GeopointParser { { final Pattern pattern = LatLon.LAT == latlon ? patternLat : patternLon; - final Matcher matcher = pattern.matcher(text); + final MatcherWrapper matcher = new MatcherWrapper(pattern, text); if (matcher.find()) { final double sign = matcher.group(1).equalsIgnoreCase("S") || matcher.group(1).equalsIgnoreCase("W") ? -1.0 : 1.0; |