Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0693fd85 authored by Andreas Gampe's avatar Andreas Gampe
Browse files

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
parent b97fdfa3
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -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();
    }

    /**