summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Dianne Hackborn <hackbod@android.com> 2010-12-22 11:21:21 -0800
committer Android Code Review <code-review@android.com> 2010-12-22 11:21:21 -0800
commit3b10aea50c1044ff33d02727829c47c061f6e1c8 (patch)
tree8aa3b6f37c9d1b8d5c3bc5edae77809fb9c5c73a
parent749c627fc0f30dd3db051f22f20b69a51dc19e59 (diff)
parent33b432476edbc8b8d39f5f70e594b6bc71317286 (diff)
Merge "Improve performance of WindowState.toString()"
-rw-r--r--services/java/com/android/server/WindowManagerService.java16
1 files changed, 13 insertions, 3 deletions
diff --git a/services/java/com/android/server/WindowManagerService.java b/services/java/com/android/server/WindowManagerService.java
index 83d65fa3046f..f605c117cb27 100644
--- a/services/java/com/android/server/WindowManagerService.java
+++ b/services/java/com/android/server/WindowManagerService.java
@@ -6005,6 +6005,11 @@ public class WindowManagerService extends IWindowManager.Stub
// Input channel
InputChannel mInputChannel;
+ // Used to improve performance of toString()
+ String mStringNameCache;
+ CharSequence mLastTitle;
+ boolean mWasPaused;
+
WindowState(Session s, IWindow c, WindowToken token,
WindowState attachedWindow, WindowManager.LayoutParams a,
int viewVisibility) {
@@ -7262,9 +7267,14 @@ public class WindowManagerService extends IWindowManager.Stub
@Override
public String toString() {
- return "Window{"
- + Integer.toHexString(System.identityHashCode(this))
- + " " + mAttrs.getTitle() + " paused=" + mToken.paused + "}";
+ if (mStringNameCache == null || mLastTitle != mAttrs.getTitle()
+ || mWasPaused != mToken.paused) {
+ mLastTitle = mAttrs.getTitle();
+ mWasPaused = mToken.paused;
+ mStringNameCache = "Window{" + Integer.toHexString(System.identityHashCode(this))
+ + " " + mLastTitle + " paused=" + mWasPaused + "}";
+ }
+ return mStringNameCache;
}
}