aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/geopoint
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-01-05 11:03:58 +0100
committerBananeweizen <bananeweizen@gmx.de>2013-01-05 11:03:58 +0100
commit68069dc6982f3a2c87690eb9171f5820064ebbab (patch)
tree0be0bf26f5d3d272224d048d82fc32abef37a188 /main/src/cgeo/geocaching/geopoint
parent656e92453fcf0e9d7da137cd4c3551b6530e9969 (diff)
downloadcgeo-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.java5
-rw-r--r--main/src/cgeo/geocaching/geopoint/GeopointParser.java5
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;