diff options
author | Nicolas Roard <nicolas@android.com> | 2011-03-02 11:04:40 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-03-02 11:04:40 -0800 |
commit | 4295c0abd174e52120888b498d04517b6b1e9872 (patch) | |
tree | 50950818d29915fe422ef6a300fa4ffc6af2e146 /WebCore | |
parent | da8388854dcf7a2bc8402814cf92f69ca988da90 (diff) | |
parent | 0deeab6aee62df9601e2b0c345b0d364cb8228f0 (diff) | |
download | external_webkit-4295c0abd174e52120888b498d04517b6b1e9872.zip external_webkit-4295c0abd174e52120888b498d04517b6b1e9872.tar.gz external_webkit-4295c0abd174e52120888b498d04517b6b1e9872.tar.bz2 |
Merge "Fix Browser ANR"
Diffstat (limited to 'WebCore')
-rw-r--r-- | WebCore/platform/graphics/android/GLWebViewState.cpp | 8 |
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 |