Move FLATTENED_PATTERN to inner class.

Avoid AOT compilation/initialization in ART failing due to regex.Pattern
requiring native support.

Bug: 14646037

Change-Id: I9d9c7fd9ed9fab7e21d37f9b31c00d037fc5a691
This commit is contained in:
Ian Rogers
2014-05-14 15:29:35 -07:00
parent e3e2c471b2
commit 5d5d14fd97

View File

@@ -36,9 +36,21 @@ public final class Rect implements Parcelable {
public int right;
public int bottom;
private static final Pattern FLATTENED_PATTERN = Pattern.compile(
/**
* A helper class for flattened rectange pattern recognition. A separate
* class to avoid an initialization dependency on a regular expression
* causing Rect to not be initializable with an ahead-of-time compilation
* scheme.
*/
private static final class UnflattenHelper {
private static final Pattern FLATTENED_PATTERN = Pattern.compile(
"(-?\\d+) (-?\\d+) (-?\\d+) (-?\\d+)");
static Matcher getMatcher(String str) {
return FLATTENED_PATTERN.matcher(str);
}
}
/**
* Create a new empty Rect. All coordinates are initialized to 0.
*/
@@ -152,7 +164,7 @@ public final class Rect implements Parcelable {
* or null if the string is not of that form.
*/
public static Rect unflattenFromString(String str) {
Matcher matcher = FLATTENED_PATTERN.matcher(str);
Matcher matcher = UnflattenHelper.getMatcher(str);
if (!matcher.matches()) {
return null;
}