diff options
| author | 2011-02-22 09:33:19 +0100 | |
|---|---|---|
| committer | 2011-02-22 09:33:19 +0100 | |
| commit | 93c5b6a81da8f7348ae43c860d21617eed4fa6d7 (patch) | |
| tree | 1537fc55b9e8beea2799e28b0ff0d924906c890c | |
| parent | 7118bdec523568842e70555e353951df9f2596fd (diff) | |
Releasing lock even if exception is thrown.
However, the whole method needs to be reviewed. It still has several
locking/unlocking places not tied together by try-finally construct,
but they cannot be fixed without deeper understanding.
Change-Id: Iaaf87568d585327654be409377b6d57a1da135eb
| -rw-r--r-- | core/java/android/view/ViewRoot.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index c58207ee9999..ccaef408a9f4 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -1065,10 +1065,11 @@ public final class ViewRoot extends Handler implements ViewParent, } } mSurfaceHolder.mSurfaceLock.lock(); - // Make surface invalid. - //mSurfaceHolder.mSurface.copyFrom(mSurface); - mSurfaceHolder.mSurface = new Surface(); - mSurfaceHolder.mSurfaceLock.unlock(); + try { + mSurfaceHolder.mSurface = new Surface(); + } finally { + mSurfaceHolder.mSurfaceLock.unlock(); + } } } |