summaryrefslogtreecommitdiffstats
path: root/WebCore/platform
diff options
context:
space:
mode:
authorNicolas Roard <nicolas@android.com>2011-03-02 11:04:40 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-03-02 11:04:40 -0800
commit4295c0abd174e52120888b498d04517b6b1e9872 (patch)
tree50950818d29915fe422ef6a300fa4ffc6af2e146 /WebCore/platform
parentda8388854dcf7a2bc8402814cf92f69ca988da90 (diff)
parent0deeab6aee62df9601e2b0c345b0d364cb8228f0 (diff)
downloadexternal_webkit-4295c0abd174e52120888b498d04517b6b1e9872.zip
external_webkit-4295c0abd174e52120888b498d04517b6b1e9872.tar.gz
external_webkit-4295c0abd174e52120888b498d04517b6b1e9872.tar.bz2
Merge "Fix Browser ANR"
Diffstat (limited to 'WebCore/platform')
-rw-r--r--WebCore/platform/graphics/android/GLWebViewState.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/WebCore/platform/graphics/android/GLWebViewState.cpp b/WebCore/platform/graphics/android/GLWebViewState.cpp
index c25a6e8..5e1285f 100644
--- a/WebCore/platform/graphics/android/GLWebViewState.cpp
+++ b/WebCore/platform/graphics/android/GLWebViewState.cpp
@@ -96,9 +96,15 @@ GLWebViewState::GLWebViewState(android::Mutex* buttonMutex)
GLWebViewState::~GLWebViewState()
{
- SkSafeUnref(m_currentBaseLayer);
+ // We have to destroy the two tiled pages first as their destructor
+ // may depend on the existence of this GLWebViewState and some of its
+ // instance variables in order to complete.
+ // Explicitely, currently we need to have the m_currentBaseLayer around
+ // in order to complete any pending paint operations (the tiled pages
+ // will remove any pending operations, and wait if one is underway).
delete m_tiledPageA;
delete m_tiledPageB;
+ SkSafeUnref(m_currentBaseLayer);
#ifdef DEBUG_COUNT
ClassTracker::instance()->decrement("GLWebViewState");
#endif