diff options
Diffstat (limited to 'WebKit/android/nav/WebView.cpp')
-rw-r--r-- | WebKit/android/nav/WebView.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/WebKit/android/nav/WebView.cpp b/WebKit/android/nav/WebView.cpp index 52092c8..935aecd 100644 --- a/WebKit/android/nav/WebView.cpp +++ b/WebKit/android/nav/WebView.cpp @@ -206,7 +206,7 @@ WebView(JNIEnv* env, jobject javaWebView, int viewImpl) : // We must remove the m_glWebViewState prior to deleting m_baseLayer. If we // do not remove it here, we risk having BaseTiles trying to paint using a // deallocated base layer. - delete m_glWebViewState; + stopGL(); #endif delete m_frameCacheUI; delete m_navPictureUI; @@ -214,6 +214,14 @@ WebView(JNIEnv* env, jobject javaWebView, int viewImpl) : delete m_glDrawFunctor; } +void stopGL() +{ +#if USE(ACCELERATED_COMPOSITING) + delete m_glWebViewState; + m_glWebViewState = 0; +#endif +} + WebViewCore* getWebViewCore() const { return m_viewImpl; } @@ -2207,6 +2215,11 @@ static void nativeDestroy(JNIEnv *env, jobject obj) delete view; } +static void nativeStopGL(JNIEnv *env, jobject obj) +{ + GET_NATIVE_VIEW(env, obj)->stopGL(); +} + static bool nativeMoveCursorToNextTextInput(JNIEnv *env, jobject obj) { WebView* view = GET_NATIVE_VIEW(env, obj); @@ -2564,6 +2577,8 @@ static JNINativeMethod gJavaWebViewMethods[] = { (void*) nativeShowCursorTimed }, { "nativeStartSelection", "(II)Z", (void*) nativeStartSelection }, + { "nativeStopGL", "()V", + (void*) nativeStopGL }, { "nativeSubtractLayers", "(Landroid/graphics/Rect;)Landroid/graphics/Rect;", (void*) nativeSubtractLayers }, { "nativeTextGeneration", "()I", |