From daef6a012fc8231ecf2b9573b6b83b3b2fd41d81 Mon Sep 17 00:00:00 2001 From: Benoit Girard Date: Wed, 15 Feb 2012 11:29:14 -0500 Subject: [PATCH] Fix one shutdown crash --HG-- extra : rebase_source : dd71617cbabf7848565ab609362964037fbac01a --- gfx/layers/ipc/CompositorChild.cpp | 1 + gfx/layers/ipc/CompositorParent.cpp | 2 ++ widget/android/nsWindow.cpp | 5 ++++- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gfx/layers/ipc/CompositorChild.cpp b/gfx/layers/ipc/CompositorChild.cpp index 4e0c357906b0..340fd0390833 100644 --- a/gfx/layers/ipc/CompositorChild.cpp +++ b/gfx/layers/ipc/CompositorChild.cpp @@ -72,6 +72,7 @@ CompositorChild::Destroy() static_cast(ManagedPLayersChild()[0]); layers->Destroy(); } + printf_stderr("Destroy compositor\n"); SendStop(); } diff --git a/gfx/layers/ipc/CompositorParent.cpp b/gfx/layers/ipc/CompositorParent.cpp index d44c28b2bc72..f926c012b6a6 100644 --- a/gfx/layers/ipc/CompositorParent.cpp +++ b/gfx/layers/ipc/CompositorParent.cpp @@ -78,6 +78,7 @@ CompositorParent::Destroy() bool CompositorParent::RecvStop() { + printf_stderr("Stop composition\n"); mPaused = true; Destroy(); return true; @@ -93,6 +94,7 @@ CompositorParent::ScheduleRenderOnCompositorThread(::base::Thread &aCompositorTh void CompositorParent::PauseComposition() { + printf_stderr("Pause composition\n"); if (!mPaused) { mPaused = true; diff --git a/widget/android/nsWindow.cpp b/widget/android/nsWindow.cpp index 92c3dafb64c9..32e3ed6e39ff 100644 --- a/widget/android/nsWindow.cpp +++ b/widget/android/nsWindow.cpp @@ -218,6 +218,9 @@ nsWindow::~nsWindow() mRootAccessible = nsnull; #endif ALOG("nsWindow %p destructor", (void*)this); + + AndroidBridge::Bridge()->SetCompositorParent(NULL, NULL); + } bool @@ -1152,7 +1155,7 @@ nsWindow::DrawTo(gfxASurface *targetSurface, const nsIntRect &invalidRect) } case LayerManager::LAYERS_OPENGL: { - __android_log_print(ANDROID_LOG_ERROR, "Gecko", "### Basic layers drawing"); + __android_log_print(ANDROID_LOG_ERROR, "Gecko", "### OGL layers drawing"); static_cast(GetLayerManager(nsnull))-> SetClippingRegion(nsIntRegion(boundsRect));