summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/util/Slog.java15
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);