am 8d3cf106: am d4b38fe5: am 647e0df0: Merge "Surface: Leave object in unlocked state when unlockCanvasAndPost fails" into lmp-dev
* commit '8d3cf106aa53ccf03c9f57c4e3b4af5799e2b530': Surface: Leave object in unlocked state when unlockCanvasAndPost fails
This commit is contained in:
@@ -250,7 +250,7 @@ public class Surface implements Parcelable {
|
|||||||
// double-lock, but that won't happen if mNativeObject was updated. We can't
|
// double-lock, but that won't happen if mNativeObject was updated. We can't
|
||||||
// abandon the old mLockedObject because it might still be in use, so instead
|
// abandon the old mLockedObject because it might still be in use, so instead
|
||||||
// we just refuse to re-lock the Surface.
|
// we just refuse to re-lock the Surface.
|
||||||
throw new IllegalStateException("Surface was already locked");
|
throw new IllegalArgumentException("Surface was already locked");
|
||||||
}
|
}
|
||||||
mLockedObject = nativeLockCanvas(mNativeObject, mCanvas, inOutDirty);
|
mLockedObject = nativeLockCanvas(mNativeObject, mCanvas, inOutDirty);
|
||||||
return mCanvas;
|
return mCanvas;
|
||||||
@@ -279,9 +279,12 @@ public class Surface implements Parcelable {
|
|||||||
if (mLockedObject == 0) {
|
if (mLockedObject == 0) {
|
||||||
throw new IllegalStateException("Surface was not locked");
|
throw new IllegalStateException("Surface was not locked");
|
||||||
}
|
}
|
||||||
nativeUnlockCanvasAndPost(mLockedObject, canvas);
|
try {
|
||||||
nativeRelease(mLockedObject);
|
nativeUnlockCanvasAndPost(mLockedObject, canvas);
|
||||||
mLockedObject = 0;
|
} finally {
|
||||||
|
nativeRelease(mLockedObject);
|
||||||
|
mLockedObject = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user