summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2011-09-01 11:39:37 -0700
committerJohn Reck <jreck@google.com>2011-09-01 11:39:37 -0700
commit90afe21dbb3cbed56a67e17b2260622e501255ea (patch)
tree43080d20d4e6c593ed16d0f516e3e6da76b00125 /core
parent6c859576ad5ae5e870e3e96b650f015024b6c49e (diff)
downloadframeworks_base-90afe21dbb3cbed56a67e17b2260622e501255ea.zip
frameworks_base-90afe21dbb3cbed56a67e17b2260622e501255ea.tar.gz
frameworks_base-90afe21dbb3cbed56a67e17b2260622e501255ea.tar.bz2
Prevent serialization after being destroyed
Bug: 5246900 Change-Id: Ic0be139b26e1b52203b8d0286c12175df6a1a46c
Diffstat (limited to 'core')
-rw-r--r--core/java/android/webkit/ViewStateSerializer.java6
-rw-r--r--core/java/android/webkit/WebView.java3
2 files changed, 8 insertions, 1 deletions
diff --git a/core/java/android/webkit/ViewStateSerializer.java b/core/java/android/webkit/ViewStateSerializer.java
index 0fc76fa..5f91ed3 100644
--- a/core/java/android/webkit/ViewStateSerializer.java
+++ b/core/java/android/webkit/ViewStateSerializer.java
@@ -36,11 +36,15 @@ class ViewStateSerializer {
static boolean serializeViewState(OutputStream stream, WebView web)
throws IOException {
+ int baseLayer = web.getBaseLayer();
+ if (baseLayer == 0) {
+ return false;
+ }
DataOutputStream dos = new DataOutputStream(stream);
dos.writeInt(VERSION);
dos.writeInt(web.getContentWidth());
dos.writeInt(web.getContentHeight());
- return nativeSerializeViewState(web.getBaseLayer(), dos,
+ return nativeSerializeViewState(baseLayer, dos,
new byte[WORKING_STREAM_STORAGE]);
}
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 5200b12..230234a 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -4311,6 +4311,9 @@ public class WebView extends AbsoluteLayout
}
int getBaseLayer() {
+ if (mNativeClass == 0) {
+ return 0;
+ }
return nativeGetBaseLayer();
}