diff options
| -rw-r--r-- | core/java/android/util/Slog.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/core/java/android/util/Slog.java b/core/java/android/util/Slog.java index f61ab2985163..d3eaeae993e6 100644 --- a/core/java/android/util/Slog.java +++ b/core/java/android/util/Slog.java @@ -30,11 +30,11 @@ import java.util.Locale; */ public final class Slog { - @GuardedBy("sMessageBuilder") - private static final StringBuilder sMessageBuilder = new StringBuilder(); + @GuardedBy("Slog.class") + private static StringBuilder sMessageBuilder; - @GuardedBy("sMessageBuilder") - private static final Formatter sFormatter = new Formatter(sMessageBuilder, Locale.ENGLISH); + @GuardedBy("Slog.class") + private static Formatter sFormatter; private Slog() { } @@ -226,7 +226,12 @@ public final class Slog { } private static String getMessage(String format, @Nullable Object... args) { - synchronized (sMessageBuilder) { + synchronized (Slog.class) { + if (sMessageBuilder == null) { + // Lazy load so they're not created if not used by the process + sMessageBuilder = new StringBuilder(); + sFormatter = new Formatter(sMessageBuilder, Locale.ENGLISH); + } sFormatter.format(format, args); String message = sMessageBuilder.toString(); sMessageBuilder.setLength(0); |