am 01a58129: am 0250bc2f: Merge "Catch exception when ViewRoot\'s surface is not valid. Bug #3399426" into honeycomb
* commit '01a5812902668d0dbba51cd0efe22bfba3711230':
Catch exception when ViewRoot's surface is not valid. Bug #3399426
diff --git a/core/java/android/view/ViewRoot.java b/core/java/android/view/ViewRoot.java
index a8772fe..e1f6b00 100644
--- a/core/java/android/view/ViewRoot.java
+++ b/core/java/android/view/ViewRoot.java
@@ -1542,6 +1542,7 @@
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 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;