diff options
| author | 2010-12-22 11:21:21 -0800 | |
|---|---|---|
| committer | 2010-12-22 11:21:21 -0800 | |
| commit | 3b10aea50c1044ff33d02727829c47c061f6e1c8 (patch) | |
| tree | 8aa3b6f37c9d1b8d5c3bc5edae77809fb9c5c73a | |
| parent | 749c627fc0f30dd3db051f22f20b69a51dc19e59 (diff) | |
| parent | 33b432476edbc8b8d39f5f70e594b6bc71317286 (diff) | |
Merge "Improve performance of WindowState.toString()"
| -rw-r--r-- | services/java/com/android/server/WindowManagerService.java | 16 |
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; } } |