summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Romain Guy <romainguy@google.com> 2012-05-11 10:01:42 -0700
committer Romain Guy <romainguy@google.com> 2012-05-11 10:01:42 -0700
commit78245f77d2724ee3a053f13fbcb0359751b9f842 (patch)
treed844b78ffaa2cc5b73ee498e151efc127fd31624
parentc9c275fe5c54f12ce66440ea0d28ff35d67ebdff (diff)
Prevent NPE in TextureView.getBitmap()
This crash could occur when invoking setSurfaceTexture() then getBitmap() before the View has a chance to be drawn. Change-Id: I25c55df15750e59b9c916e8f750de2c89718d39e
-rw-r--r--core/java/android/view/TextureView.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/view/TextureView.java b/core/java/android/view/TextureView.java
index 651be2e9c1e4..2048de235cb4 100644
--- a/core/java/android/view/TextureView.java
+++ b/core/java/android/view/TextureView.java
@@ -561,7 +561,17 @@ public class TextureView extends View {
applyUpdate();
applyTransformMatrix();
- mLayer.copyInto(bitmap);
+ // This case can happen if the app invokes setSurfaceTexture() before
+ // we are able to create the hardware layer. We can safely initialize
+ // the layer here thanks to the validate() call at the beginning of
+ // this method
+ if (mLayer == null && mUpdateSurface) {
+ getHardwareLayer();
+ }
+
+ if (mLayer != null) {
+ mLayer.copyInto(bitmap);
+ }
}
return bitmap;
}