Frameworks/base: Use holder in FileUtils

Use a holder for an uncommon Pattern instance in FileUtils.

Allows to compile-time initialize:
* android.os.FileUtils

Bug: 28174137
Change-Id: I4a7a388795a96678b4b26e4f2c02b1117d6a67f6
This commit is contained in:
Andreas Gampe
2016-04-28 19:33:05 -07:00
parent b97fdfa39a
commit 0693fd85f6

View File

@@ -72,8 +72,13 @@ public class FileUtils {
public static final int S_IWOTH = 00002;
public static final int S_IXOTH = 00001;
/** Regular expression for safe filenames: no spaces or metacharacters */
private static final Pattern SAFE_FILENAME_PATTERN = Pattern.compile("[\\w%+,./=_-]+");
/** Regular expression for safe filenames: no spaces or metacharacters.
*
* Use a preload holder so that FileUtils can be compile-time initialized.
*/
private static class NoImagePreloadHolder {
public static final Pattern SAFE_FILENAME_PATTERN = Pattern.compile("[\\w%+,./=_-]+");
}
private static final File[] EMPTY = new File[0];
@@ -243,7 +248,7 @@ public class FileUtils {
// Note, we check whether it matches what's known to be safe,
// rather than what's known to be unsafe. Non-ASCII, control
// characters, etc. are all unsafe by default.
return SAFE_FILENAME_PATTERN.matcher(file.getPath()).matches();
return NoImagePreloadHolder.SAFE_FILENAME_PATTERN.matcher(file.getPath()).matches();
}
/**