diff options
-rw-r--r-- | core/java/android/view/ViewRoot.java | 1 | ||||
-rw-r--r-- | core/jni/android_view_Surface.cpp | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java index 41fc6c6..b21af41 100644 --- a/core/java/android/view/ViewRoot.java +++ b/core/java/android/view/ViewRoot.java @@ -1537,6 +1537,7 @@ public final class ViewRoot extends Handler implements ViewParent, int top = dirty.top; int right = dirty.right; int bottom = dirty.bottom; + canvas = surface.lockCanvas(dirty); if (left != dirty.left || top != dirty.top || right != dirty.right || diff --git a/core/jni/android_view_Surface.cpp b/core/jni/android_view_Surface.cpp index e4af33f..aa9c107 100644 --- a/core/jni/android_view_Surface.cpp +++ b/core/jni/android_view_Surface.cpp @@ -296,8 +296,10 @@ static inline SkBitmap::Config convertPixelFormat(PixelFormat format) static jobject Surface_lockCanvas(JNIEnv* env, jobject clazz, jobject dirtyRect) { const sp<Surface>& surface(getSurface(env, clazz)); - if (!Surface::isValid(surface)) + if (!Surface::isValid(surface)) { + doThrow(env, "java/lang/IllegalArgumentException", NULL); return 0; + } // get dirty region Region dirtyRegion; |