summaryrefslogtreecommitdiff
path: root/core/java/android/webkit/WebView.java
diff options
context:
space:
mode:
authorAndrei Popescu <andreip@google.com>2010-03-09 12:23:19 +0000
committerAndrei Popescu <andreip@google.com>2010-03-09 18:04:35 +0000
commit0409857f8ff1b140733537db4bf56ccc663318e7 (patch)
tree55d0c175ad42584cc7cbaff69ac53fd8b83571c8 /core/java/android/webkit/WebView.java
parentabf19abe4808114cae3f274773a267603f18c923 (diff)
Make sure access to WebView::mWebViewCore is synchronized.
Fix bug: 2498784
Diffstat (limited to 'core/java/android/webkit/WebView.java')
-rw-r--r--core/java/android/webkit/WebView.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 6079a376413d..e81fec460322 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -1125,9 +1125,11 @@ public class WebView extends AbsoluteLayout
mCallbackProxy.setWebViewClient(null);
mCallbackProxy.setWebChromeClient(null);
// Tell WebViewCore to destroy itself
- WebViewCore webViewCore = mWebViewCore;
- mWebViewCore = null; // prevent using partial webViewCore
- webViewCore.destroy();
+ synchronized (this) {
+ WebViewCore webViewCore = mWebViewCore;
+ mWebViewCore = null; // prevent using partial webViewCore
+ webViewCore.destroy();
+ }
// Remove any pending messages that might not be serviced yet.
mPrivateHandler.removeCallbacksAndMessages(null);
mCallbackProxy.removeCallbacksAndMessages(null);
@@ -5842,7 +5844,7 @@ public class WebView extends AbsoluteLayout
cursorData(), 1000);
}
- /* package */ WebViewCore getWebViewCore() {
+ /* package */ synchronized WebViewCore getWebViewCore() {
return mWebViewCore;
}